2017-02-20 16 views
0

私は様々なファイル拡張子(jpg/png..etc)で約50枚の写真があり、documentDirectoryに格納されている画像あたり約3MBの問題があります。コレクションビューにロードしようとすると、スクロールするときにUI全体が遅くなります。私はこの2日間問題を抱えていましたし、遅れのコレクションビューを扱う多くのstackoverflowの質問を読んでいますが、これを解決することはまだできません。どんな助けもありがとう!画像をdocumentDirectoryからUICollectionViewに読み込むときにスクロールするとき

これは私のcollectionViewセルを構成するために私のコードです:

DispatchQueue.global(qos: .userInteractive).async { [unowned self] in 
    let image = UIImage(contentsOfFile: url) 

     DispatchQueue.main.async { 
      self.cellImage.image = image 
     } 
    } 

紛らわしい部分は、このコードは、動画のサムネイルを表示するだけで正常に動作しています。

ご協力いただきありがとうございます。

+0

私は私の提案は、いくつかの画像キャッシングを使用することで写真を自身で問題の原因を考える:

は、あなたがメインスレッドに渡す前にイメージを解凍するためにバックグラウンドスレッドで、次のコードを追加することができます[Alamofire](https://github.com/Alamofire/Alamofire)や[sd-image](https://github.com/rs/SDWebImage)のようなAPIです。 – Arashk

+0

https://github.com/rs/SDWebImage –

答えて

0

UIImageをバックグラウンドスレッドからロードしても、UIImageViewがメインスレッド上で描画を試みるまで、イメージは解凍されない可能性があります。

let context = UIGraphicsBeginImageContext(CGSize(width: 1, height: 1)) 
image.draw(at: .zero) 
UIGraphicsEndImageContext() 
+0

私はこれのバリエーションを試してみましたが、私のアプリをもっと速くクラッシュさせるようです...私にもデバッグエラーはありません。おそらくメモリオーバーロード... – Soja

関連する問題