2017-03-09 27 views
0

にそれを表示する私は()はUIImageにPHAssetを変換し、ユーザ

BSImagePicker画像ピッカーコントローラを使用している画像ピッカーコントローラではなく、UIImageよりPHAssetを返しますので、私はこれを使用してUIImageにPHAssetを変換する方法を発見しました機能:

PHAsset to UIImage

func getAssetThumbnail(asset: PHAsset) -> UIImage { 
    let manager = PHImageManager.default() 
    let option = PHImageRequestOptions() 
    var thumbnail = UIImage() 
    option.isSynchronous = true 
    manager.requestImage(for: asset, targetSize: CGSize(width: 100, height: 100), contentMode: .aspectFit, options: option, resultHandler: {(result, info)->Void in 
     thumbnail = result! 
    }) 
    return thumbnail 
} 

問題は、私はPHImageManagerMaximumSizeのはTargetSizeを返すようにしたい、ということです。 Althoughtこの問題が発生したとき、私は私がCGSize(width: 100, height: 100)

答えて

0

targetSizeを設定するときにエラーが発生していないだけで、あなたのエラーを回避するために必要errorrにThis application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.

を取得するには、上の自動レイアウトを変更するためにアプリケーションを強制することですメインスレッドたとえば、イメージを設定するときにメインキューのディスパッチャを使用できます。たとえば :

let image = self.getAssetThumbnail(asset: <YourPHAsset>) 

     DispatchQueue.main.async { 

      self.imageView.image = image 
     } 

あなたはtargetSize ...奇妙なを使用するときにエラーが発生した場合にも...

関連する問題