QMUIImagePickerHelper

@interface QMUIImagePickerHelper : NSObject

配合 QMUIImagePickerViewController 使用的工具类

  • 选中图片数量改变时,展示图片数量的 Label 的动画,动画过程如下: Label 背景色改为透明,同时产生一个与背景颜色和形状、大小都相同的图形置于 Label 底下,做先缩小再放大的 spring 动画 动画结束后移除该图形,并恢复 Label 的背景色

    Warning

    iOS6 下降级处理不调用动画效果

    Declaration

    Objective-C

    + (void)springAnimationOfImageSelectedCountChangeWithCountLabel:
        (UILabel *)label;

    Swift

    class func springAnimationOfImageSelectedCountChange(withCount label: UILabel!)

    Parameters

    label

    需要做动画的 UILabel

  • 图片 checkBox 被选中时的动画

    Warning

    iOS6 下降级处理不调用动画效果

    Declaration

    Objective-C

    + (void)springAnimationOfImageCheckedWithCheckboxButton:(UIButton *)button;

    Swift

    class func springAnimationOfImageChecked(withCheckboxButton button: UIButton!)

    Parameters

    button

    需要做动画的 checkbox 按钮

  • 搭配springAnimationOfImageCheckedWithCheckboxButton:一起使用,添加animation之前建议先remove

    Declaration

    Objective-C

    + (void)removeSpringAnimationOfImageCheckedWithCheckboxButton:
        (UIButton *)button;

    Swift

    class func removeSpringAnimationOfImageChecked(withCheckboxButton button: UIButton!)
  • 获取最近一次调用 updateLastAlbumWithAssetsGroup 方法调用时储存的 QMUIAssetsGroup 对象

    Declaration

    Objective-C

    + (id)assetsGroupOfLastPickerAlbumWithUserIdentify:(NSString *)userIdentify;

    Swift

    class func assetsGroupOfLastPickerAlbum(withUserIdentify userIdentify: String!) -> Any!

    Parameters

    userIdentify

    用户标识,由于每个用户可能需要分开储存一个最近调用过的 QMUIAssetsGroup,因此增加一个标识区分用户。 一个常见的应用场景是选择图片时保存图片所在相册的对应的 QMUIAssetsGroup,并使用用户的 user id 作为区分不同用户的标识, 当用户再次选择图片时可以根据已经保存的 QMUIAssetsGroup 直接进入上次使用过的相册。

  • 储存一个 QMUIAssetsGroup,从而储存一个对应的相册,与 assetsGroupOfLatestPickerAlbumWithUserIdentify 方法对应使用

    Declaration

    Objective-C

    + (void)updateLastestAlbumWithAssetsGroup:(id)assetsGroup
                             ablumContentType:(id)albumContentType
                                 userIdentify:(NSString *)userIdentify;

    Swift

    class func updateLastestAlbum(withAssetsGroup assetsGroup: Any!, ablumContentType albumContentType: Any!, userIdentify: String!)

    Parameters

    assetsGroup

    要被储存的 QMUIAssetsGroup

    albumContentType

    相册的内容类型

    userIdentify

    用户标识,由于每个用户可能需要分开储存一个最近调用过的 QMUIAssetsGroup,因此增加一个标识区分用户

  • 检测一组资源是否全部下载成功,如果有资源仍未从 iCloud 中下载成功,则返回 NO

    可以用于选择图片后,业务需要自行处理 iCloud 下载的场景。

    Declaration

    Objective-C

    + (BOOL)imageAssetsDownloaded:(NSMutableArray *)imagesAssetArray;

    Swift

    class func imageAssetsDownloaded(_ imagesAssetArray: NSMutableArray!) -> Bool
  • 检测资源是否已经在本地,如果资源仍未从 iCloud 中成功下载,则会发出请求从 iCloud 加载资源,并通过多次调用 block 返回请求结果

    可以用于选择图片后,业务需要自行处理 iCloud 下载的场景。

    Declaration

    Objective-C

    + (void)requestImageAssetIfNeeded:(id)asset
                           completion:(void (^)(int, NSError *))completion;

    Swift

    class func requestImageAssetIfNeeded(_ asset: Any!, completion: ((Int32, Error?) -> Void)!)