我使用以下代码来获取所有智能相册:
PHAssetCollection.fetchAssetCollections(with: PHAssetCollectionType.smartAlbum, subtype: PHAssetCollectionSubtype.albumRegular, options: nil)
如何从此次提取中排除 Panoramas 智能相册?我假设我必须使用选项参数添加谓词,但我不知道如何格式化谓词。
如果您想排除全景图,请考虑使用数组并仅获取您需要的集合。换句话说,将集合列入白名单。或者您可以枚举集合并排除全景图。白名单还可以让您控制集合的顺序。
var smartAlbums: [PHAssetCollection] = []
let subtypes:[PHAssetCollectionSubtype] = [
// all photos collection
// .smartAlbumUserLibrary,
.smartAlbumFavorites,
.smartAlbumPanoramas,
.smartAlbumLivePhotos,
.smartAlbumBursts,
.smartAlbumDepthEffect,
.smartAlbumLongExposures,
.smartAlbumScreenshots,
.smartAlbumSelfPortraits
]
smartAlbums = fetchSmartCollections(with: .smartAlbum, subtypes: subtypes)
private func fetchSmartCollections(with: PHAssetCollectionType, subtypes: [PHAssetCollectionSubtype]) -> [PHAssetCollection] {
var collections:[PHAssetCollection] = []
let options = PHFetchOptions()
options.includeHiddenAssets = false
for subtype in subtypes {
if let collection = PHAssetCollection.fetchAssetCollections(with: with, subtype: subtype, options: options).firstObject {
collections.append(collection)
}
}
return collections
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)