XMNPhotoPickerKit - 选择图片视频

思路

  1. 为了兼容iOS7(AssetsLibaray),iOS8+(PhotoKit),统一使用一个单例类 XMNPhotoManager 来获取图片
  2. 使用XMNAssetModelXMNAlbumModel 封装下获取的result
  3. 自定义XMNPhotoPickerController继承UINavigationController 来作为选择图片的入口

1. XMNPhotoPickerKit

1.1 照片管理Manager

1.1.1 相关类

1.1.1.1. XMNAlbumModel : 专辑信息
属性 属性说明 作用
name album 名称
count 照片数量
result 包含的图片数组,PHFetchResult<PHAsset> or ALAssetsGroup<ALAsset>
方法 方法说明 作用
albumWithResult: Class方法 通过获取的PHFetchResult<PHAsset> or ALAssetsGroup<ALAsset>
setName: 重写name的setter方法 设置name为中文字符串
1.1.1.2. XMNAssetModel : 照片,视频等信息
属性 属性说明 作用
asset 资源类型,PHAsset or ALAsset
selected 是否被选中
type readonly 图片,视频,livePhoto,audio等
timeLength readonly 视频长度
originImage readOnly 原图
thumbnail readonly 缩略图,默认大小的缩略图
previewImage readonly 适合当前屏幕的预览图
imageOrientation readonly 图片方向
1.1.1.3. XMNPhotoManager : 获取所有专辑,专辑内照片视频等
  • iOS6,7 使用AssetsLibaray iOS8+使用PhotoKit
  • 使用单例模式,并且iOS8+使用了PHCachingImageManager在获取图片的时候缓存,保证XMNPhotoCollectionController的滑动流畅
方法 方法说明 作用
hasAuthorized classMethods 判断是否授权
requestOriginImageWithAsset:WithCompletion: 方法 获取asset的原图
requestThumbnailWithAsset:WithCompletion: 方法 获取asset的对应的缩略图
requestPreviewImageWithAsset:WithCompletion: 方法 获取asset对应的预览图,适应当前屏幕的尺寸
imageOrientationWithAsset:WithCompletion: 方法 获取对应asset的图片方向

1.2 照片选择ViewController

1.2.1 XMNPhotoPickerController

  • 继承UINavigationController
  • 默认rootController是XMNAlbumListController
  • 除了didCancelPickingBlock 会自动dismiss XMNPhotoPickerController,其他回调方式均不会自动dismiss,需要手动dismiss
属性 属性说明 作用
pickingVideoEnable 是否允许选择视频
autoPushToPhotoCollection 是否自动push到photoCollectionController界面
maxCount 最大选择数量 ,默认视频一次只能选择一个,默认选择9个
photoPickerDelegate delegate 回调 方式
didFinishPickingPhotosBlock 确定选择图片的block回调方式
didFinishPickingVideoBlock 确定选择视频的block回调方式
didCancelPickingBlock readonly 确定取消选择的回调方式
方法 方法说明 作用
- (instancetype)initWithMaxCount:(NSUInteger)maxCount delegate:(id<XMNPhotoPickerControllerDelegate>)delegate NS_DESIGNATED_INITIALIZER; 初始化方法 初始化XMNPhotoPickerController
- (void)didFinishPickingPhoto:(NSArray<XMNAssetModel *> *)assets; public方法 提供给viewControllers 回调,会调用自身delegate以及block 的对应回调
- (void)didFinishPickingVideo:(XMNAssetModel *)asset; public方法 提供给viewControllers 唤起对应delegate,block 回调
- (void)didCancelPickingPhoto public方法 提供给viewControllers 唤起对应delegate,block回调
1.2.2 XMNAlbumListController
  • 继承UITableViewController
  • 使用tableView 展示album相册列表
  • 点击后跳转到XMNPhotoCollectionController界面

1.3 XMNPhotoPicker - 模仿QQ选择照片的Sheet,使用block回调

  • 推荐使用单例sharePhotoPicker
  • 支持手势滑动发送图片
  • 支持预览图片 - XMNPhotoPreviewController 视频-XMNVideoPreviewController
  • 支持使用系统相机拍照发送图片
  • iOS8+支持动态监测系统图片变化

1.4 照片预览XMNPhotoPreviewController 继承UICollectionController

  • 继承UICollectionViewController
  • 实现block 回调

1.5 视频预览XMNVideoPreviewController

  • 继承UIViewController
  • 实现block回调
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,068评论 4 62
  • 人去世以后哭真是世界上最无用的事情之一!哭给谁看呢给活着的别人看!哭的动静越大就越孝顺别人会说这家人真是孝顺啊...
    biubiuboomboom阅读 362评论 0 1
  • 国庆节,在这个举国同庆的日子,多少年前的这一天,一位老人宣布中华人民共和国成立了!是多么的富有划时代的意义!从此,...
    想飞的树不如草阅读 555评论 0 3