TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Apr 2017 |
Maintained by ZhaoBingDong.
一款不错的图片选择器,支持从相册选取单张或者多张图片,利用delegate和block做为选择完成后的回调. 2支持 iOS8以上系统,基于Photos.framework的封装,完美实现从相册选择图片查看相册图片列表.
CocoaPods集成方式 pod 'CYPhotosKit', '~> 2.6.0'
iOS8以后苹果推出了 Photos.Framework来管理用户相册等多媒体资源,笔者抱着学习的态度仿写了一个多图片选择器,利用 Photos.Framework 来获取相册里的相片视频.
CYPhotosLibrary 获取相册里的分组,查看单个分组里所有相片,单选和多选照片,可以设置最大选择照片的数量. github地址: https://github.com/ZhaoBingDong/CYPhotosKit
如果要打开设置隐私界面 修改plist文件,在里面添加 URL types 并设置一项URL Schemes为prefs
详细过程可以查看简书
http://www.jianshu.com/p/dc2c07449d90 示例代码
let cyPhotoNav = CYPhotoNavigationController.showPhotosViewController() self.presentViewController(cyPhotoNav, animated: true, completion: nil) cyPhotoNav.maxPickerImageCount = self.getNeedsImageCount() // 设置最大选去相片的数量,比如最多选择9张照片 cyPhotoNav.cyPhotosDelegate = self cyPhotoNav.completionBlock = { (photos) in
}
CYPhotoNavigationControllerDelegate 图片选择器协议
// MARK: - CYPhotoNavigationControllerDelegate extension BKComposeViewController : CYPhotoNavigationControllerDelegate {
func cyPhotoNavigationController(controller: CYPhotoNavigationController?, didFinishedSelectPhotos result: [CYPhotosAsset]?) {
let array = NSMutableArray()
for i in 0..<result!.count {
let photoAsset = result![i]
let photo = CYPhoto()
photo.type = .Photo
photo.image = nil
photo.photosAsset = photoAsset
array.addObject(photo)
}
let indexSet = NSIndexSet.init(indexesInRange: NSMakeRange(0, array.count))
self.dataSource.insertObjects(array as [AnyObject], atIndexes: indexSet)
if self.dataSource.count >= 10 {
self.dataSource.removeLastObject()
}
self.collectionView.reloadData()
}
} API 文档
CYPhotoNavigationController 图片选择器对象 通过它完成相册所有照片的显示和选择完图片后的回调
@class CYPhotosAsset; /**
@protocol CYPhotoNavigationControllerDelegate; /**
/**
/**
/** completionBlock */ @property (nonatomic,copy,nullable) PhotosCompletion completionBlock;
/** cyPhotosDelegate / @property (nonatomic,weak,nullable) id cyPhotosDelegate; /*
@end
@protocol CYPhotoNavigationControllerDelegate <NSObject,UINavigationControllerDelegate>
@optional
/**
@end CYPhotosAsset 代表一个相片或者一个视频资源
/**
/** 代表一个图片或者视频 */ @property (nonatomic,strong,nullable) PHAsset *asset;
/** 缩略图 */ @property (nonatomic,strong,nullable) UIImage *thumbnail;
/** 原图 */ @property (nonatomic,strong,nullable) UIImage *originalImg;
/** 视频/图片的本地 url */ @property (nonatomic,copy,nullable ) NSURL *imageUrl;
/** 选取后的图片/视频的二进制文件 */ @property (nonatomic,strong,nullable) NSData *imageData;
@end CYPhotosCollection 代表一个集合,比如所有照片,最近删除,可以看成单独的某个相册
/**
/**
@end CYPhotosManager 获取相册集合对象 获取所有相册集合 用户自己创建相册集合 系统相册集合
/**
/**
/**
/**
/**