PHPhotoLibrary(QMUI)

@interface PHPhotoLibrary (QMUI)

/**
 *  根据 contentType 的值产生一个合适的 PHFetchOptions,并把内容以资源创建日期排序,创建日期较新的资源排在前面
 *
 *  @param contentType 相册的内容类型
 *
 *  @return 返回一个合适的 PHFetchOptions
 */
+ (PHFetchOptions *)createFetchOptionsWithAlbumContentType:(QMUIAlbumContentType)contentType;

/**
 *  获取所有相册
 *
 *  @param contentType    相册的内容类型,设定了内容类型后,所获取的相册中只包含对应类型的资源
 *  @param showEmptyAlbum 是否显示空相册(经过 contentType 过滤后仍为空的相册)
 *  @param showSmartAlbum 是否显示“智能相册”
 *
 *  @return 返回包含所有合适相册的数组
 */
+ (NSArray<PHAssetCollection *> *)fetchAllAlbumsWithAlbumContentType:(QMUIAlbumContentType)contentType showEmptyAlbum:(BOOL)showEmptyAlbum showSmartAlbum:(BOOL)showSmartAlbum;

/// 获取一个 PHAssetCollection 中创建日期最新的资源
+ (PHAsset *)fetchLatestAssetWithAssetCollection:(PHAssetCollection *)assetCollection;

/**
 *  保存图片或视频到指定的相册
 *
 *  @warning 无论用户保存到哪个自行创建的相册,系统都会在“相机胶卷”相册中同时保存这个图片。
 *           原因请参考 QMUIAssetsManager 对象的保存图片和视频方法的注释。
 *  @warning 无法通过该方法把图片保存到“智能相册”,“智能相册”只能由系统控制资源的增删。
 */
- (void)addImageToAlbum:(CGImageRef)imageRef albumAssetCollection:(PHAssetCollection *)albumAssetCollection orientation:(UIImageOrientation)orientation completionHandler:(void(^)(BOOL success, NSDate *creationDate, NSError *error))completionHandler;

- (void)addImageToAlbum:(NSURL *)imagePathURL albumAssetCollection:(PHAssetCollection *)albumAssetCollection completionHandler:(void(^)(BOOL success, NSDate *creationDate, NSError *error))completionHandler;

- (void)addVideoToAlbum:(NSURL *)videoPathURL albumAssetCollection:(PHAssetCollection *)albumAssetCollection completionHandler:(void(^)(BOOL success, NSDate *creationDate, NSError *error))completionHandler;

@end

Undocumented

  • 根据 contentType 的值产生一个合适的 PHFetchOptions,并把内容以资源创建日期排序,创建日期较新的资源排在前面

    Declaration

    Objective-C

    + (PHFetchOptions *)createFetchOptionsWithAlbumContentType:
        (QMUIAlbumContentType)contentType;

    Swift

    class func createFetchOptions(with contentType: QMUIAlbumContentType) -> PHFetchOptions!

    Parameters

    contentType

    相册的内容类型

    Return Value

    返回一个合适的 PHFetchOptions

  • 获取所有相册

    Declaration

    Objective-C

    + (NSArray<PHAssetCollection *> *)
        fetchAllAlbumsWithAlbumContentType:(QMUIAlbumContentType)contentType
                            showEmptyAlbum:(BOOL)showEmptyAlbum
                            showSmartAlbum:(BOOL)showSmartAlbum;

    Swift

    class func fetchAllAlbums(with contentType: QMUIAlbumContentType, showEmptyAlbum: Bool, showSmartAlbum: Bool) -> [PHAssetCollection]!

    Parameters

    contentType

    相册的内容类型,设定了内容类型后,所获取的相册中只包含对应类型的资源

    showEmptyAlbum

    是否显示空相册(经过 contentType 过滤后仍为空的相册)

    showSmartAlbum

    是否显示“智能相册”

    Return Value

    返回包含所有合适相册的数组

  • 获取一个 PHAssetCollection 中创建日期最新的资源

    Declaration

    Objective-C

    + (PHAsset *)fetchLatestAssetWithAssetCollection:
        (PHAssetCollection *)assetCollection;

    Swift

    class func fetchLatestAsset(with assetCollection: PHAssetCollection!) -> PHAsset!
  • 保存图片或视频到指定的相册

    Warning

    无论用户保存到哪个自行创建的相册,系统都会在“相机胶卷”相册中同时保存这个图片。 原因请参考 QMUIAssetsManager 对象的保存图片和视频方法的注释。

    Warning

    无法通过该方法把图片保存到“智能相册”,“智能相册”只能由系统控制资源的增删。

    Declaration

    Objective-C

    - (void)addImageToAlbum:(CGImageRef)imageRef
        albumAssetCollection:(PHAssetCollection *)albumAssetCollection
                 orientation:(UIImageOrientation)orientation
           completionHandler:(void (^)(BOOL, NSDate *, NSError *))completionHandler;

    Swift

    func addImage(toAlbum imageRef: CGImage!, albumAssetCollection: PHAssetCollection!, orientation: UIImage.Orientation, completionHandler: ((Bool, Date?, Error?) -> Void)!)
  • Undocumented

    Declaration

    Objective-C

    - (void)addImageToAlbum:(NSURL *)imagePathURL albumAssetCollection:(PHAssetCollection *)albumAssetCollection completionHandler:(void(^)(BOOL success, NSDate *creationDate, NSError *error))completionHandler;

    Swift

    func addImage(toAlbum imagePathURL: URL!, albumAssetCollection: PHAssetCollection!, completionHandler: ((Bool, Date?, Error?) -> Void)!)
  • Undocumented

    Declaration

    Objective-C

    - (void)addVideoToAlbum:(NSURL *)videoPathURL albumAssetCollection:(PHAssetCollection *)albumAssetCollection completionHandler:(void(^)(BOOL success, NSDate *creationDate, NSError *error))completionHandler;

    Swift

    func addVideo(toAlbum videoPathURL: URL!, albumAssetCollection: PHAssetCollection!, completionHandler: ((Bool, Date?, Error?) -> Void)!)