Ios 将PHAsset获取结果限制为仅3个资产
我需要取三张按拍摄日期排序的照片-最近一张是最近一张。我目前的做法是获取所有照片资产,然后在适当的索引(0、1、2)处获取资产。虽然这是可行的,但我很好奇,当我只对前三名感兴趣时,是否有更有效的方法来做到这一点。文档解释了获取不会返回所有的图像数据——只返回元数据,但我仍然不需要获取所有的元数据。是否有Ios 将PHAsset获取结果限制为仅3个资产,ios,photokit,phasset,phfetchoptions,Ios,Photokit,Phasset,Phfetchoptions,我需要取三张按拍摄日期排序的照片-最近一张是最近一张。我目前的做法是获取所有照片资产,然后在适当的索引(0、1、2)处获取资产。虽然这是可行的,但我很好奇,当我只对前三名感兴趣时,是否有更有效的方法来做到这一点。文档解释了获取不会返回所有的图像数据——只返回元数据,但我仍然不需要获取所有的元数据。是否有phfetch选项可用于限制提取,或NSPredicate,或者无需担心 var assetsFetchResults = PHAsset.fetchAssetsWithMediaType(.Im
phfetch选项
可用于限制提取,或NSPredicate
,或者无需担心
var assetsFetchResults = PHAsset.fetchAssetsWithMediaType(.Image, options: nil)
let imageManager = PHCachingImageManager()
if assetsFetchResults?.count > 0 {
var asset = assetsFetchResults?[0] as? PHAsset
imageManager.requestImageForAsset(asset, targetSize: targetSize, contentMode: .AspectFill, options: nil, resultHandler: ...)
}
//repeat for index 1 and 2
因此,使用iOS9,您可以设置PHFetchOptions设置以限制获取的数量。例如:
let fetchOptions = PHFetchOptions()
if #available(iOS 9.0, *) {
fetchOptions.fetchLimit = 3
} else {
// Fallback on earlier versions
}
不过,我也在寻找一种在iOS 8设备上实现这一点的方法,因为目前我们还必须同时支持iOS 8和iOS 9,所以在iOS 9上,您可以设置PHFetchOptions设置以限制获取的数量。例如:
let fetchOptions = PHFetchOptions()
if #available(iOS 9.0, *) {
fetchOptions.fetchLimit = 3
} else {
// Fallback on earlier versions
}
不过,我也在寻找一种在iOS 8设备上实现这一点的方法,因为目前我们仍然必须同时支持iOS 8和iOS 9您可以使用
FetchKeyAssetAssetCollection:options:
来获取一些关键照片,而不是FetchAssetAssetCollection:options:options:
这在特定于应用程序的用户情况下不起作用库。@jarora它在iOS 8.4.1中为我工作,在由第三方应用程序创建的相册中您可以使用FetchKeyAssetAssetCollection:options:
来获取一些关键照片,而不是FetchAssetAssetCollection:options:options:
这在特定于应用程序的用户库中不起作用。@jarora它在iOS 8.4.1中为我工作由第三方应用程序创建的相册