基于PhotoKit写的图片,视频选择器

1.在公司的项目中,图片选择的时候需要自己定义一个图片选择器,自己根据PhotoKit写了一个Demo,也顺便学习了一下PhotoKit,自己扩展了一下,既能选择图片也能选择视频。

1.1 图片选择,如下图:
IMG_2052.PNG
1.2 获取相册,如下图:
IMG_2053.PNG
1.3 视频选择,如下图:
IMG_2054.PNG

2.相册和媒体的获取代码主要在ZCPhotoManager这个类里面,接下来可能写一篇关于PhotoKit介绍的博客。

2.1 获取相册
- (NSMutableArray *)showAlbums {
    
    PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
    PHFetchResult *topLevelUserCollections = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil];
    self.fetchResults = @[smartAlbums, topLevelUserCollections];
    
    NSMutableArray *albums = [NSMutableArray array];
    
    for (PHFetchResult *fetchResult in self.fetchResults)
    {
        for (PHCollection *collection in fetchResult) {
            if ([collection isKindOfClass:[PHAssetCollection class]])
            {
                PHAssetCollection *assetCollection = (PHAssetCollection *)collection;
                PHFetchResult *assets = [self assetsInAssetCollection:assetCollection];
                if (assets.count > 0) {
                    if (assetCollection.assetCollectionSubtype == PHAssetCollectionSubtypeSmartAlbumUserLibrary) {
                        [albums insertObject:assetCollection atIndex:0];
                    } else {
                        [albums addObject:assetCollection];
                    }
                    
                }
                
            }
        }
    }
    return albums;
}

2.2 获取相册中的媒体
- (PHFetchResult *)assetsInAssetCollection:(PHAssetCollection *)album{
    
    PHFetchOptions *options = [[PHFetchOptions alloc] init];
    options.predicate = [NSPredicate predicateWithFormat:@"mediaType in %@", self.mediaTypes];
    options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
    return [PHAsset fetchAssetsInAssetCollection:(PHAssetCollection *)album options:options];
}
2.3 然后主要的功能就是图片的展示,布局。

3.直接上Demo

github地址

3.1 由于时间比较短,里面的UI写的可能有点粗糙,主要是为了自己学习,就这样吧。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,233评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,196评论 4 61
  • 【特邀至YY财经课堂】—【风云财经-股友之家】教室成立 众多的股友反映到【破狼】空间每天更新的操作策略观看不到,有...
    破_狼阅读 3,914评论 48 42
  • 她不是赵雷的南方姑娘 不是马頔的傲寒 不是宋冬野的董小姐 不是李志的港岛妹妹 不是海龟的玛卡瑞纳 不是贰佰的玫瑰 ...
    最后的Ymj阅读 3,089评论 0 1
  • 并已烧开了许久,壶嘴呼呼吐着白气,壶盖在滚开的水的鼓动下,哗啦哗啦触碰着壶身,炉膛已经通红了。小小的北屋已经是春天...
    花香两岸阅读 2,600评论 0 0