从iOS相机胶卷加载的图像在第二个视图控制器中显示时质量较差

时间:2016-09-11 18:14:03

标签: ios swift uicollectionview uicollectionviewcell

我写了一个应用程序,它在集合视图中显示来自相机胶卷的所有图像。当用户点击单元格时,将显示带有所选图像的第二个视图控制器。我的问题是第二个视图控制器上的较大图像质量很差。

获取图像的代码:

var imageArray = [UIImage]()

func grabPhotos() {



    let imgManager = PHImageManager.default()

    let requestOptions = PHImageRequestOptions()
    requestOptions.isSynchronous = true
    requestOptions.deliveryMode = .highQualityFormat

    let fetchOptions = PHFetchOptions()
    fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]

    let fetchResult : PHFetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions)

    if fetchResult.count > 0 {


        for i in 0..<fetchResult.count {

            imgManager.requestImage(for: fetchResult.object(at: i) , targetSize: CGSize(width: 200, height: 200), contentMode: .aspectFill, options: requestOptions, resultHandler: {

                image, error in

                self.imageArray.append(image!)

            })

        }


    } else {

        self.collectionView?.reloadData()

    }


}

这里我将图像传递给第二个视图控制器:

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    imageThatWillBePassed = imageArray[indexPath.item]
    performSegue(withIdentifier: "Show Image", sender: self)

}

显示图片的代码:

class ShowImageViewController: UIViewController {

var imgToPass = UIImage()

@IBOutlet weak var imageToShow: UIImageView!

@IBOutlet weak var backBtn: UIBarButtonItem!
@IBOutlet weak var shareBtn: UIBarButtonItem!



override func viewDidLoad() {
    super.viewDidLoad()

    UIApplication.shared.isStatusBarHidden = true

}


override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    imageToShow.image = imgToPass
}

我认为问题在于我是以实际单元格的质量传递图像,但我不知道如何解决这个问题。

感谢您的帮助。

0 个答案:

没有答案