0

問題:

に追加/削除するsubviewsと、UIScrollView顕著な遅延が発生します。

詳細:

数十の「ページ」を含む(ページング付き)がありますUIScrollViewenabledこのコンテンツのサイズはUIScrollview、ページ数 * の幅ですUIScrollView

これらの各ページは、subviewファイル システムへのアクセスから作成したものです。Myは、現在のページとその左/右の隣接ページのUIScrollView3 つのページを保持します。現在のページが半分画面外にあるとき、つまりディスク アクセスとビュー階層の操作が発生したときにsubviews、隣接ページの読み込み/削除が行われます。subviews

私が最初にこれに遭遇したとき、私の即時の考えは、ディスクアクセス/構築がsubview遅延の原因であるということでした. それ以来、私はこれに移行しましたがNSTimer、まだ同じ遅延が発生しています。

遅延が(へのaddSubview追加) と(からの削除) によって引き起こされているのではないかと疑い始めています。 subviewUIScrollViewremoveFromSuperviewsubviewsUIScrollView

Subviewsに直接追加されUIScrollViewます。UIScrollViewそれらを追加する内部に「コンテンツビュー」がありません。

質問:

これは一般的な問題/ボトルネックですか? これらのページをロードするためのより良いパターンはありますか?

4

2 に答える 2

1

問題は、サブビューの画像プロパティを設定することでした。UIImage はすぐには処理を実行せず、画面に表示するための準備を行うだけです。これが遅延の原因でした。

質問は私を正しい道に導きました:

UIImageView の画像プロパティを設定すると、大きな遅延が発生します

彼らの解決策は、Core Graphics を使用して自分で画像を解凍/処理することで、見事に機能しました。

于 2012-07-18T20:01:52.347 に答える
0

NSTimer通常、メインスレッドで実行されます。メインスレッドで同期ディスクアクセスを実行している場合は、スタッターが発生します。ファイルをどのように読んでいますか?

于 2012-07-18T01:57:10.943 に答える