私のアプリはスクリーンショットを取ります。私はあなたがそれらのスナップショットを巡回することを可能にするスクロールビューを持つメイン画面を持っています。問題は、スナップショットが多いほどビューが遅くなることです。スクロールビューで約15枚のスナップショットを取得することができます。私が表示している画像は実際のスクリーンショットのサイズのわずか1/3です。各スクリーンショットは、スクロールビュー上のUIImageViewです。ここでパフォーマンスを向上させると思っていますか?iOS画像パフォーマンス向上の提案を表示
1
A
答えて
5
あなたができることは、遅延ロードを行うことです。 その時点で表示されている画像のみをそのビューにロードします。 一度スクロールすると古いイメージが解放され、新しいイメージがロードされます。画像をロードする
二つの方法:
[UIImage imageNamed:fullFileName] // caches the image
か:
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:fileName ofType:extension];
NSData *imageData = [NSData dataWithContentsOfFile:fileLocation];
[UIImage imageWithData:imageData];
か、最終的には:あなたがやっていることに最善依存しているソリューション
[UIImage imageWithContentsOfFile:path] // does not cache the image
画像。 imageNamed:
メソッドはイメージをキャッシュしますが、多くの場合、メモリ使用に役立ちます。たとえば、画像を10回ロードしてテーブルビューにテキストを表示すると、UIImage
は10個の個別のオブジェクトを割り当てるのではなく、その画像の単一の表現をメモリに保持します。一方、非常に大きなイメージがあり、それを再使用していない場合は、データオブジェクトからイメージをロードして、完了後にイメージがメモリから削除されていることを確認してください。
巨大な画像がない場合は、遅延読み込みを使用している限り、キャッシュについては心配しません。問題が見つからない限り、メモリの改善は無視できるほど少ないコード行を選択します。
関連する問題
- 1. 背景画像のパフォーマンスが向上
- 2. AutoCompleteTextViewの提案を表示
- 3. 画像上にツールチップを作成するための提案
- 4. iOSでの画像表示
- 5. **内部**画像(ディレクトリから生成)の提案を表示しますか?
- 6. iOSネットワーキングライブラリの提案
- 7. MigraDoc画像を画像上に表示
- 8. iOSは画像の上に画像を上にスライドさせ、下の画像を表示します。 (ラjQuery.slide())
- 9. サービス指向アーキテクチャの提案
- 10. 画像表示をアニメーション化する上向き
- 11. パフォーマンスの向上
- 12. TCPDFの画像解像度を向上
- 13. 画像上のImageJ表示画素値
- 14. IOS:変更ビューの提案
- 15. iOS Bluetoothサービスの提案
- 16. Androidの非表示の提案バー
- 17. キーワードを提案に加えたドメインの提案を表示する - WHMCSドメインチェッカー
- 18. 画像表示の画像を表示
- 19. iOS MKMapViewカスタム画像が左上隅に表示されます
- 20. は、パフォーマンスを向上させるための代替クエリを提案していますか?使用
- 21. パフォーマンスの向上は
- 22. スパークストリーミングジョブのパフォーマンス向上
- 23. ウェブサービスのパフォーマンス向上
- 24. パフォーマンスの向上は
- 25. 2sumのパフォーマンス向上
- 26. ISNULL:パフォーマンスの向上?
- 27. マウスの上に画像を表示
- 28. 画像上の点を表示する
- 29. イメージの上に画像を表示
- 30. AndroidからiOSへ - 提案
一度に表示する必要がある画像の数はいくつですか? また、「各スクリーンショットはスクロールビュー上の 'UIImageView'です」ということは、各UIImageViewが単一のスクロールビューの内側に置かれていることを意味しますか、それとも独自のスクロールビュー単一の外側スクロールビューに配置されますか? –