如何在 UITableView 中实现类似 UIImageView 的延迟加载

     2023-03-04     83

关键词:

【中文标题】如何在 UITableView 中实现类似 UIImageView 的延迟加载【英文标题】:How to implement UIImageView-like delayed loading in UITableView 【发布时间】:2009-11-03 12:20:00 【问题描述】:

背景: 我有一个 UITableView 在每个单元格中显示一个图像。这些图像都是大 pdf 文件的一部分。所以我正在做的实际上是在那些 UITableViewCells 中渲染小的 pdf 部分,每个单元格只显示一个片段。因此,我将 UIView 添加到单元格的内容视图并按需呈现视图。 渲染这些 pdf 部分很昂贵,每个大约需要 0.2 秒(仅绘制 Pdf 部分),这会减慢表格的滚动速度。

想法: 现在,当我查看 UIImage 如何呈现基于 URL 的图像时,我知道可能会有一个解决方案。如果您基于 url 创建 UIImage,这些图像会以某种方式延迟呈现。例如,看看 iTunes-App。 平滑滚动是可能的,每个图像都显示为未渲染,渲染完成后它看起来很平滑。

问题:如何通过以某种方式延迟显示单元格来呈现如上所述的 UITableViewCell 中的昂贵渲染?有谁知道,Apple 如何在 UIImageView 中解决它?

提前致谢

丹尼尔

【问题讨论】:

【参考方案1】:

这(大部分)是 Lazy load images in UITableViewCell 的副本。检查那里的链接和示例。

简而言之,您需要生成一个单独的线程 来加载 PDF 缩略图,然后该线程将生成的图像发送回主线程。这可以通过使用performSelectorInBackground:withObject:performSelectorOnMainThread:withObject:waitUntilDone: 方法轻松完成。

【讨论】:

您好,感谢您提供重复消息的提示。我没看到。解决方案虽然不满足我。如果您认为内存消耗很大,我必须提前建立多少缓存。我的图像和整个屏幕一样大。我刚刚找到了一个看起来很有希望的解决方案:我使用了 CATiledLayer!如果您在图层中委托绘图,则所有后台线程都由系统完成。您需要做的就是将绘图从视图移动到图层。 你能举个例子吗?

如何在 UITableView 的索引列表中实现放大镜? [关闭]

】如何在UITableView的索引列表中实现放大镜?[关闭]【英文标题】:HowtoimplementamagnifyingglassintheindexlistofanUITableView?[closed]【发布时间】:2019-10-0916:42:41【问题描述】:我想在Swift中的UITableView的索引列表中实现一个放大镜。它应该... 查看详情

如何在 UITableView 中实现搜索功能?

】如何在UITableView中实现搜索功能?【英文标题】:HowmakesearchfunctioninUITableView?【发布时间】:2011-10-0509:53:23【问题描述】:我在UIViewController里面有UITableView...现在我想添加一个搜索栏来搜索UITableView中的所有数据...我真的很困惑... 查看详情

如何在 UITableview 的 didSelectRowAtIndexPath 中实现动作?

】如何在UITableview的didSelectRowAtIndexPath中实现动作?【英文标题】:HowtoimplementactionindidSelectRowAtIndexPathofUITableview?【发布时间】:2012-06-1803:06:20【问题描述】:在我看来,我以前只有几个按钮,每个按钮都有一个与之关联的操作。... 查看详情

如何在 UITableView 中实现 dequeueReusableCell(withIdentifier:) 的代码?

】如何在UITableView中实现dequeueReusableCell(withIdentifier:)的代码?【英文标题】:howtoImplementthecodefordequeueReusableCell(withIdentifier:)inUITableView?【发布时间】:2021-06-0611:04:59【问题描述】:我的朋友被要求为Facebook的iOS工程师角色快速实现... 查看详情

如何在 UITableView 的 RXswift 和 RXCocoa 中实现 tableview 单元格的内部?

】如何在UITableView的RXswift和RXCocoa中实现tableview单元格的内部?【英文标题】:HowtoimplementinRXswiftandRXCocoaofUITableViewInsideoftableviewcell?【发布时间】:2018-08-2114:13:17【问题描述】:我是RXswift新手,目前正在从事一个需要rxswift和UITable... 查看详情

如何在 Jinja 中实现类似 Django 的标签

】如何在Jinja中实现类似Django的标签【英文标题】:HowtoimplementDjango-liketagsinJinja【发布时间】:2015-07-2807:49:09【问题描述】:我想在Jinja中实现与Django模板的自定义标签类似的功能。在Django模板中,要让服务器端函数返回一个字... 查看详情

如何在 PHP 中实现类似 Enum 的功能? [复制]

】如何在PHP中实现类似Enum的功能?[复制]【英文标题】:HowtoimplementEnumlikefunctionalityinPHP?[duplicate]【发布时间】:2010-12-0410:30:36【问题描述】:如何在PHP中使用类似Enum的功能(在Java和其他高级语言中提供)?我知道PHP目前不允许... 查看详情

如何在 Python 中实现类似 C# RSACryptoServiceProvider 的加密?

】如何在Python中实现类似C#RSACryptoServiceProvider的加密?【英文标题】:HowtoachieveC#RSACryptoServiceProvider-likeencryptioninPython?【发布时间】:2013-08-0616:49:02【问题描述】:所以,在C#中我有以下代码:publicstaticvoidMain(string[]args)publicKeyXml="... 查看详情

如何在zepto中实现类似slideDown()的jquery

】如何在zepto中实现类似slideDown()的jquery【英文标题】:HowtoimplementjquerylikeslideDown()inzepto【发布时间】:2012-08-2918:41:54【问题描述】:我正在为我的移动网站使用zepto库。我最近了解到zepto没有像jquery这样的slideDown()插件。我想为ze... 查看详情

如何在表单中实现类似 Stack Overflow 的水印?

】如何在表单中实现类似StackOverflow的水印?【英文标题】:HowcanIimplementStackOverflow-likewatermarksinforms?【发布时间】:2011-01-1615:38:00【问题描述】:我记得在某处看到过一个教程,其中讨论了如何以更“可用”的方式设置输入表单... 查看详情

如何在 swift 中实现类似 Dropbox 的进度视图?

】如何在swift中实现类似Dropbox的进度视图?【英文标题】:HowdoIachievethisDropboxlikeprogressviewinswift?【发布时间】:2015-09-1105:46:54【问题描述】:DropboxiOS应用有一种非常酷的视图层次结构,当从它们的“文件”tableView中选择一行时... 查看详情

如何在 AngularJS 中实现组件组合(类似于 React 渲染道具模式)?

】如何在AngularJS中实现组件组合(类似于React渲染道具模式)?【英文标题】:HowcanIachievecomponentcompositioninAngularJS(similartoReactrenderpropspattern)?【发布时间】:2019-05-2608:18:24【问题描述】:我正在尝试在AngularJS中创建一个网格组件... 查看详情

如何在 iOS 中实现类似于 Android 手机(默认)的裁剪功能?

】如何在iOS中实现类似于Android手机(默认)的裁剪功能?【英文标题】:HowtoimplementthecroppingfeaturesimilartoAndroidPhone(default)iniOS.?【发布时间】:2013-03-2204:39:12【问题描述】:我已经使用Github的BJImageCropper类来实现裁剪功能,但我想... 查看详情

在 UITableView 中实现动态增长的 TextView

】在UITableView中实现动态增长的TextView【英文标题】:AchievingdynamicallygrowingTextViewinsideUITableView【发布时间】:2011-02-0107:29:32【问题描述】:我正在努力在UITableView中安装UITextView。我的表是分组样式,只有一个部分和一行。我已经... 查看详情

使用 scrollViewDidScroll 方法在 UITableView 中实现分页?

】使用scrollViewDidScroll方法在UITableView中实现分页?【英文标题】:ImplementingpaginationinUITableViewwithscrollViewDidScrollmethod?【发布时间】:2014-09-1714:59:06【问题描述】:我正在构建一个文章阅读应用程序。我正在使用AFNetworking第三方库... 查看详情

如何在 React Native 中实现类似循环动画倒数计时器组件的 snapchat?

】如何在ReactNative中实现类似循环动画倒数计时器组件的snapchat?【英文标题】:HowtoimplementasnapchatlikecircularanimatedcountdowntimercomponentinReactNative?【发布时间】:2016-10-1817:03:25【问题描述】:我想知道是否有人知道如何在ReactNative中... 查看详情

在 UITableView Objective-C 中实现 UISearchController

】在UITableViewObjective-C中实现UISearchController【英文标题】:ImplementUISearchControllerinUITableViewObjective-C【发布时间】:2015-09-2500:33:25【问题描述】:我正在按照本教程在我的项目中实现UISearchController:http://useyourloaf.com/blog/updating-to-the-... 查看详情

如何在 Flutter 中实现类似视频流和视频滚动的 Tiktok

】如何在Flutter中实现类似视频流和视频滚动的Tiktok【英文标题】:HowtoimplementTiktoklikevideostreamingandvideoscrollinginFlutter【发布时间】:2020-04-0510:25:16【问题描述】:我正在尝试使用Flutter复制TikTok应用程序UI。谁能建议我如何在颤振... 查看详情