您的当前位置:首页正文

仿微信 QQ 图片选择器

来源:华拓网

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