//申請權限
PHPhotoLibrary.requestAuthorization({ (status) in
}
// 列出所有系統(tǒng)的智能相冊
let smartOptions =PHFetchOptions()
let smartAlbums =PHAssetCollection.fetchAssetCollections(with: .smartAlbum,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? subtype: .albumRegular,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? options: smartOptions)
//列出所有用戶創(chuàng)建的相冊
let userCollections =PHCollectionList.fetchTopLevelUserCollections(with:nil)
//獲取所有資源
letallPhotosOptions =PHFetchOptions()
//按照創(chuàng)建時間倒序排列
allPhotosOptions.sortDescriptors= [NSSortDescriptor(key:"creationDate",
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ascending:false)]
//只獲取圖片
?allPhotosOptions.predicate=NSPredicate(format:"mediaType = %d",
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? PHAssetMediaType.image.rawValue)
?self.assetsFetchResults=PHAsset.fetchAssets(with:PHAssetMediaType.image,
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? options: allPhotosOptions)
// 初始化和重置緩存
self.imageManager = PHCachingImageManager()
//獲取縮略圖
self.imageManager.requestImage(for: asset, targetSize:assetGridThumbnailSize,
? ? ? ? ? ? ? ? ? ? ? ? contentMode:PHImageContentMode.aspectFill,
? ? ? ? ? ? ? ? ? ? ? ? options:nil) { (image, nfo)in
?}
//獲取文件名
PHImageManager.default().requestImageData(for:myAsset, options:nil,
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? resultHandler: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? _,_,_, infoin
?})
?//獲取原圖
?PHImageManager.default().requestImage(for:myAsset,
?? ? ? ? ? ? ? ? ? ? ? ? targetSize:PHImageManagerMaximumSize, contentMode: .default,
?? ? ? ? ? ? ? ? ? ? ? ? options:nil, resultHandler: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? (image,_: [AnyHashable:Any]?)in
? ?})
//監(jiān)聽資源改變
PHPhotoLibrary.shared().register(self)
//協(xié)議PHPhotoLibraryChangeObserver
//當照片庫發(fā)生變化的時候會觸發(fā)
func photoLibraryDidChange(_changeInstance:PHChange) { }