iOS8以后苹果推出了 Photos.Framework来管理用户相册等多媒体资源,笔者抱着学习的态度仿写了一个多图片选择器,利用 Photos.Framework 来获取相册里的相片视频.
导入头文件
如果在 Objective-C file 里使用到CYPhotoskit 请导入<CYPhotosKit/CYPhotosKit.h>
如果在Siwft 中使用到 CYPhotoskit 请在使用到的地方导入 import CYPhotosKit
如果要打开设置隐私界面 修改plist文件,在里面添加 URL types 并设置一项URL Schemes为prefs
详细过程可以查看简书
示例代码
let cyPhotoNav = CYPhotoNavigationController.showPhotosViewController()
self.presentViewController(cyPhotoNav, animated: true, completion: nil)
cyPhotoNav.maxPickerImageCount = self.getNeedsImageCount() // 设置最大选去相片的数量,比如最多选择9张照片
cyPhotoNav.cyPhotosDelegate = self
= { (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()
}
}
好了,我是大兵布莱恩特,欢迎加入博主技术交流群,iOS 开发交流群
QQ20180712-0.png