Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在UITableView中像延迟加载一样实现UIImageView_Iphone_Objective C_Cocoa Touch_Iphone Sdk 3.0 - Fatal编程技术网

Iphone 如何在UITableView中像延迟加载一样实现UIImageView

Iphone 如何在UITableView中像延迟加载一样实现UIImageView,iphone,objective-c,cocoa-touch,iphone-sdk-3.0,Iphone,Objective C,Cocoa Touch,Iphone Sdk 3.0,背景: 我有一个UITableView,显示每个单元格中的图像。这些图像都是一个大pdf文件的一部分。因此,我所做的实际上是在那些UITableViewCells中呈现小的pdf部分,每个单元格只显示一个部分。因此,我将UIView添加到单元格的contentview中,并根据需要呈现视图。 渲染这些pdf部分非常昂贵,每一部分大约需要0.2秒(仅绘制pdf部分),这会减慢表格的滚动速度 想法: 现在,当我看到UIImage如何呈现基于URL的图像时,我知道可能有一个解决方案。如果基于url创建

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

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

问题:如何在上面描述的UITableViewCell中通过某种方式显示延迟的单元格来渲染昂贵的渲染?有人知道苹果是如何在UIImageView中解决这个问题的吗

提前谢谢

丹尼尔这(大部分)是他的复制品。检查那里的链接和示例


简而言之,您需要生成一个单独的线程来加载PDF缩略图,然后该线程用生成的图像向主线程发回信号。使用
performSelectorInBackground:withObject:
performSelectorOnMainThread:withObject:waituntldone:
方法可以轻松完成此操作。

Hi感谢您对重复消息的提示。我没看见。不过,这个解决方案并不令我满意。内存消耗是很大的,若你们想一想,我必须提前建立多少缓存。我的图像和整个屏幕一样大。我刚刚找到了一个解决方案,看起来很有希望:我使用了一个CATILDELAYER!如果在图层中委派图形,则所有后台线程都由系统完成。您所需要做的就是将图形从视图移动到图层。您能提供一个例子吗?