Skip to content

方便易用的相册照片多选框架,支持拍照、预览快速多选;相册混合选择;原图功能;在线下载iCloud端图片,且针对iCloud端图片的选择做了细节处理;自定义最大选择量及最大预览量

License

Notifications You must be signed in to change notification settings

EasySwift/ZLPhotoBrowser

 
 

Repository files navigation

ZLPhotoBrowser

Version License Platform Language

###框架整体介绍

  • 该框架为一个多选照片(不支持视频)的框架,兼容设备开启的iCloud照片存储,并在加载和选择iCloud端照片时做部分细节处理(快速滑动切换图片不会导致图片显示混乱),支持记录历史选择照片。
    • 1.支持预览多选(预览图数量及最大多选数可设置)
      • [预览快速多选效果图] (#预览快速多选效果图)
    • 2.支持直接进入相册多选
      • [直接进入相册选择相片效果图] (#直接进入相册选择相片效果图)
    • 3.支持预览大图,大图的缩放等
      • [预览大图及缩放效果图] (#预览大图及缩放效果图)
    • 4.支持实时拍照
    • 5.支持多相册(不同的相册名字)图片混合多选
      • [相册内混合选择效果图] (#相册内混合选择效果图)
    • 6.预览已选择照片
      • [预览已选择照片效果图] (#预览已选择照片效果图)
    • 7.原图功能
      • [原图功能效果图] (#原图功能效果图)
    • 8.可实时监测相册图片变化(即在预览图时,如果用户触发截屏等操作,会实时的加载出该图片)
      • [实时监测相册内图片变化] (#实时监测相册内图片变化)
    • 9.加载iCloud端照片(所有照片加载时都会先加载模糊的图片,然后过渡高清图,iCloud端照片加载更加明显)
      • [加载iCloud端照片效果图] (#加载iCloud端照片效果图)
  • [常用Api] (#常用Api)
  • [过期Api] (#过期Api)
  • [使用方法(支持cocoapods安装)] (#使用方法)

###框架支持与框架依赖

  • iOS8.0, * (采用arc模式)
  • XCode8.0, * (需要导入Photos.framework)

###注意点 如果项目中设置了

[[UINavigationBar appearance] setTranslucent:NO];

则需要在ZLDefine.h里 把kViewHeight 修改为

#define kViewHeight [[UIScreen mainScreen] bounds].size.height - 64

###常用Api

/** 最大选择数 default is 10 */
@property (nonatomic, assign) NSInteger maxSelectCount;

/** 预览图最大显示数 default is 20 */
@property (nonatomic, assign) NSInteger maxPreviewCount;

/**
 * @brief 显示多选照片视图,带预览效果
 * @param sender 调用该控件的视图控制器
 * @param animate 是否显示动画效果
 * @param lastSelectPhotoModels 已选择的PHAsset,再次调用"showWithSender:animate:lastSelectPhotoModels:completion:"方法之前,可以把上次回调中selectPhotoModels赋值给该属性,便可实现记录上次选择照片的功能,若不需要记录上次选择照片的功能,则该值传nil即可
 * @param completion 完成回调
 */
- (void)showPreviewPhotoWithSender:(UIViewController *)sender
                 animate:(BOOL)animate
   lastSelectPhotoModels:(NSArray<ZLSelectPhotoModel *> * _Nullable)lastSelectPhotoModels
              completion:(void (^)(NSArray<UIImage *> *selectPhotos, NSArray<ZLSelectPhotoModel *> *selectPhotoModels))completion;

/**
 * @brief 显示多选照片视图,直接进入相册选择界面
 * 参数含义同上
 */
- (void)showPhotoLibraryWithSender:(UIViewController *)sender
             lastSelectPhotoModels:(NSArray<ZLSelectPhotoModel *> * _Nullable)lastSelectPhotoModels
                        completion:(void (^)(NSArray<UIImage *> *selectPhotos, NSArray<ZLSelectPhotoModel *> *selectPhotoModels))completion;

###过期Api

//如继续使用该api,将默认调用显示预览视图的效果api
- (void)showWithSender:(UIViewController *)sender
               animate:(BOOL)animate
        lastSelectPhotoModels:(NSArray<ZLSelectPhotoModel *> * _Nullable)lastSelectPhotoModels
            completion:(void (^)(NSArray<UIImage *> *selectPhotos, NSArray<ZLSelectPhotoModel *> *selectPhotoModels))completion NS_DEPRECATED(2.0, 2.0, 2.0, 8.0, "Use - showPreviewPhotoWithSender:animate:lastSelectPhotoModels:completion:");

###使用方法

  • 直接把PhotoBrowser文件夹拖入到您的工程中
  • Cocoapods安装
pod search ZLPhotoBrowser
  • 在项目plist配置文件中添加如下键,值并设为YES
Localized resources can be mixed YES
//或者右键plist文件Open As->Source Code 添加
<key>CFBundleAllowMixedLocalizations</key>
<true/>
#import "ZLPhotoActionSheet.h"

ZLPhotoActionSheet *actionSheet = [[ZLPhotoActionSheet alloc] init];
//设置最大选择数量
actionSheet.maxSelectCount = 5;
//设置预览图最大数目
actionSheet.maxPreviewCount = 20;
[actionSheet showWithSender:self animate:YES completion:^(NSArray<UIImage *> * _Nonnull selectPhotos) {
    // your codes
}];
    

###预览快速多选效果图 image image

###直接进入相册选择相片效果图 image

###预览大图及缩放效果图 image

###相册内混合选择效果图 image

###预览已选择照片效果图 image

###原图功能效果图 image

###实时监测相册内图片变化 image

###加载iCloud端照片效果图 image

About

方便易用的相册照片多选框架,支持拍照、预览快速多选;相册混合选择;原图功能;在线下载iCloud端图片,且针对iCloud端图片的选择做了细节处理;自定义最大选择量及最大预览量

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 99.4%
  • Ruby 0.6%