加快从 ALAssetsLibrary 读取和填充 UITableView 的可能方法
Posted
技术标签:
【中文标题】加快从 ALAssetsLibrary 读取和填充 UITableView 的可能方法【英文标题】:Possible ways to speed up reading from ALAssetsLibrary and populating a UITableView 【发布时间】:2012-04-20 01:55:52 【问题描述】:现在,我正在使用 ALAssetsLibrary 从 ALAssetsGroupSavedPhotos 和 ALAssetsGroupLibrary 收集照片。将所有资产读入数组后,我会填充我的 UITableView ([myTable reloadData]) 以显示照片。
我发现如果用户有很多照片,延迟会增加。有什么办法可以加快速度吗?尽管相机胶卷或照片库中的照片数量很多,但默认的 UIIMagePicker 似乎根本没有延迟。有没有办法达到同样的速度?
谢谢!
【问题讨论】:
ALAsset 将在单独的线程中工作,因为它是一个 BLOCK。所以你必须在主线程中做用户界面的东西。请在此处查看我的答案以获取更多详细信息..您可以在此处查看我的答案***.com/questions/13508535/… 【参考方案1】:使用资产组的enumerateAssetsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock
枚举您当前需要显示的资产,而不是使用- (void)enumerateAssetsUsingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock
您可以(我想您想填充表格视图)例如,只需在您的 tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法中枚举索引 indexPath.row
处的资产。
【讨论】:
以上是关于加快从 ALAssetsLibrary 读取和填充 UITableView 的可能方法的主要内容,如果未能解决你的问题,请参考以下文章
MonoTouch:从 ALAssetsLibrary.AssetForUrl 中获取图像