美文网首页
Swift:使用Photos自定义相册

Swift:使用Photos自定义相册

作者: 学游泳的小黑 | 来源:发表于2017-01-10 19:56 被阅读67次

    1、在viewDidLoad注册通知

    PHPhotoLibrary.sharedPhotoLibrary().registerChangeObserver(self)
    

    2、在函数photoLibraryDidChange下添加如下内容

        dispatch_async(dispatch_get_main_queue()) {
            let collectionChanges = changeInstance.changeDetailsForFetchResult(self.allResults)
            if collectionChanges != nil {
                // 是否变化
                if collectionChanges!.hasIncrementalChanges {
                    // 监听增加或者删除
                    if (collectionChanges!.insertedObjects.count > 0) || (collectionChanges!.removedObjects.count > 0) {
                           self.allResults = collectionChanges?.fetchResultAfterChanges
                           self.photosA = self.allResults
                           self.imageCollectionView.reloadData()
                    }
                } else {
                    // 首次的时候走这里
                    if collectionChanges!.fetchResultBeforeChanges.count == 0 {
                        self.allResults = collectionChanges?.fetchResultAfterChanges
                        self.photosA = self.allResults
                        self.imageCollectionView.reloadData()
                    }
                }
            }
        }  
    

    3、在cellForItemAtIndexPath里显示自定义的CollectionView

       let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cellID", forIndexPath: indexPath) as! MyCollectionViewCell
        PHCachingImageManager.defaultManager().requestImageForAsset(PCommon.photosA![PCommon.photosA!.count - indexPath.row - 1] as! PHAsset, targetSize: CGSizeZero, contentMode: .AspectFit, options: nil) { (result: UIImage?, dictionry: Dictionary?) in
            cell.imageView.image = result ?? UIImage.init(named: "默认的图片")
        }
    

    至此,照片就很方便的展示在自定义的CollectionView中。

    相关文章

      网友评论

          本文标题:Swift:使用Photos自定义相册

          本文链接:https://www.haomeiwen.com/subject/zdhlbttx.html