Swift3 在collectionView中显示摄影机卷

Swift3 在collectionView中显示摄影机卷,swift3,collectionview,camera-roll,Swift3,Collectionview,Camera Roll,我知道这个问题已经在这个网站上得到了回答,但我尝试了代码,收到了一个错误,请帮助我在收藏视图中显示我的相机卷(我知道我必须在info.plist中添加照片使用情况,请关注我的代码谢谢!!!) 这是我的视图控制器代码 class translateViewController: UIViewController , UINavigationControllerDelegate , UIImagePickerControllerDelegate , UICollectionViewDataSourc

我知道这个问题已经在这个网站上得到了回答,但我尝试了代码,收到了一个错误,请帮助我在收藏视图中显示我的相机卷(我知道我必须在info.plist中添加照片使用情况,请关注我的代码谢谢!!!)

这是我的视图控制器代码

class translateViewController: UIViewController , UINavigationControllerDelegate , UIImagePickerControllerDelegate , UICollectionViewDataSource, UICollectionViewDelegate  {

@IBOutlet var myimageView: UIImageView!

@IBAction func importImage(_ sender: Any) {

    let image = UIImagePickerController()
    image.delegate = self
    image.sourceType = UIImagePickerControllerSourceType.photoLibrary

    image.allowsEditing = false
    self.present(image , animated: true)
    {

    }
}
@IBOutlet weak var cameraRollCollectionView: UICollectionView!


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage{
        myimageView.image = image
    }
    else {
        print("Error")
    }

    self.dismiss(animated: true, completion: nil)

}
@IBOutlet var translatebackgroundimg: UIImageView!
@IBOutlet var translatefrontimg: UIImageView!

var assetCollection: PHAssetCollection!
var photosAsset: PHFetchResult<AnyObject>!
var assetThumbnailSize: CGSize!

override func viewDidLoad() {
    super.viewDidLoad()

    let fetchOptions = PHFetchOptions()

    let collection:PHFetchResult = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions)

    if let first_Obj:AnyObject = collection.firstObject{
        //found the album
        self.assetCollection = first_Obj as! PHAssetCollection
    }



    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light)
    let blurView = UIVisualEffectView(effect: blurEffect)

    blurView.frame =  CGRect(x: self.translatebackgroundimg.frame.origin.x, y: self.translatebackgroundimg.frame.origin.y, width: self.translatebackgroundimg.frame.size.width, height: self.translatebackgroundimg.frame.size.height)

    blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

    self.translatebackgroundimg.addSubview(blurView)

    // Do any additional setup after loading the view.
    translatefrontimg.image = UIImage(named: "Translate.png")

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewDidAppear(_ animated: Bool) {

    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
    let blurView = UIVisualEffectView(effect: blurEffect)
    blurView.frame = translatebackgroundimg.bounds
    translatebackgroundimg.addSubview(blurView)
    translatebackgroundimg.frame = self.view.bounds
}

override func viewWillAppear(_ animated: Bool) {
    // Get size of the collectionView cell for thumbnail image
    if let layout = self.cameraRollCollectionView!.collectionViewLayout as? UICollectionViewFlowLayout{
        let cellSize = layout.itemSize

        self.assetThumbnailSize = CGSize(width: cellSize.width, height: cellSize.height)
    }

    //fetch the photos from collection
    self.photosAsset = (PHAsset.fetchAssets(in: self.assetCollection, options: nil) as AnyObject!) as! PHFetchResult<AnyObject>!


    self.cameraRollCollectionView!.reloadData()

}
func numberOfSections(in collectionView: UICollectionView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}


func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of items
    var count: Int = 0

    if(self.photosAsset != nil){
        count = self.photosAsset.count
    }

    return count;
}


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cameraCell", for: indexPath as IndexPath)

    //Modify the cell
    let asset: PHAsset = self.photosAsset[indexPath.item] as! PHAsset

    PHImageManager.default().requestImage(for: asset, targetSize: self.assetThumbnailSize, contentMode: .aspectFill, options: nil, resultHandler: {(result, info)in
        if result != nil {

        cameraCell.userImage.image = result

        }
    })

    return cell
}

// MARK: - UICollectionViewDelegateFlowLayout methods
func collectionView(collectinView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
    return 4
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
    return 1
}

// UIImagePickerControllerDelegate Methods
func imagePickerControllerDidCancel(_ picker: UIImagePickerController){
    picker.dismiss(animated: true, completion: nil)
}
class cameraCell: UICollectionViewCell , UIImagePickerControllerDelegate {

@IBOutlet weak var userImage: UIImageView!


func configurecell(image: UIImage){


    userImage.image = image





}
}