【发布时间】:2016-08-10 16:35:31
【问题描述】:
我希望用户能够访问他们的所有照片,但是使用 PHAsset.fetchAssetsInAssetCollection 一次加载所有照片需要很长时间,特别是如果他们有 500 多张照片(我在收藏视图中显示定制视图)。当用户到达集合视图的末尾以加载下一组时,我正在考虑使用scrollViewDidScroll,但我不知道如何从照片库中获取下一个x 数量。
我限制了他们使用fetchOptions.fetchLimit = x 可以获得的照片数量,但我不知道如何告诉函数从哪里开始获取资源。有可能吗?
这是我当前代码的 sn-p(assetCollections 设置在代码的不同部分):
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: kFormatOfPredicate, PHAssetMediaType.Image.rawValue)
fetchOptions.sortDescriptors = [NSSortDescriptor(key: kSortByCreationDateString, ascending: false)]
fetchOptions.fetchLimit = 32
//Only want camera roll
if assetCollection.localizedTitle == kCameraRollString {
assets = PHAsset.fetchAssetsInAssetCollection(assetCollection, options: fetchOptions)
if assets.count > 32 {
for i in 0..<32 {
if let asset = assets[i] as? PHAsset {
appendImageArray(assetToBeChanged: asset)
}
}
} else {
for i in 0..<assets.count {
if let asset = assets[i] as? PHAsset {
appendImageArray(assetToBeChanged: asset)
}
}
}
我可以在fetchOptions 中添加一些内容来说明要开始获取哪些资产吗?有没有更好的方法完全做到这一点?如果您需要我发布更多代码,请告诉我,并提前感谢您!
【问题讨论】:
标签: ios swift phasset photolibrary phfetchoptions