私は、スクロール中にパフォーマンスの問題を防ぐために、別のスレッドにUIScrollViewののデリゲートを実行する必要がありますか?
-
20-08-2019 - |
質問
私は、スクロール中デリゲートのメソッドでは、いくつかの洗練された事をするつもりです。それは数千hundret画像をスクロールすることは理論的には可能だように、私はまた、コンテンツの動的なプリロードを実装します。しかし、私は方向のスクロールに次の大きなチャンクのプリロードアクションを行うたびに、デリゲートはデータを配信するデータソースを待つことになる、と全体のスクロールビューは、その瞬間のために凍結されることを、恐れています。
問題は、私は常にスクロールビューのサブビューにアクセスする必要があること、です。私は、プラットフォームに新たなんだと私はそのプリロード行動のための別のスレッドを開くとき、私はまだアクセス権を持っているかどうかはわかりませんか?またはscrollviewは物事を成し遂げるために、デリゲートを待たないでしょうか?
私は滑走段階にいるよ、そんなにジェットをimplementetしていない。
解決
あなただけのメインスレッドからUIクラスを使用することができます。それでは、あなたがすべきことは(私はあなたがあまりにもバックグラウンドスレッドであなたのイメージを読み込むことができると信じて)バックグラウンドスレッドでできるだけ多くを計算し、その後、メインスレッド上でUIクラスを操作するためperformSelectorOnMainThread:withObject:waitUntilDone:
を使用することです。
他のヒント
私はあなたの特定の質問に、具体的な答えを持っていません。私はちょうどあなたがあなたのアプリケーションのためのRAMの〜25メガバイトの限界を認識していることを確認します。 Appleが制限を知っているにもかかわらず、彼らは言っていないので。
私は、この上のリンクを与えることはできません