0

UItableView のスクロールのパフォーマンスを向上させるため。バックグラウンド スレッドでセルを描画するようにアドバイスされました。

しかし、バックグラウンド スレッドで UI を更新することはお勧めできません。アプリがクラッシュする可能性があると言う人もいます。

バックグラウンドスレッドでセルを描画することは可能ですか?

4

3 に答える 3

1

バックグラウンド スレッドで描画を行い、その描画を画像としてキャプチャして、メイン スレッドに送り返すことができます。画像ビューには、描画した画像が背景に表示されます。

Apple 開発者サイトにアクセスできる場合は、WWDC 2012 のビデオ「Building Concurrent User Interfaces on iOS」をご覧ください。UIView インスタンスなどを実際にレイアウトするのではなく、さまざまな Core Graphics 描画関数を使用するだけです。

于 2012-08-30T03:29:59.953 に答える
0

バックグラウンドで UI を描画すると、クラッシュする可能性があるだけでなく、ほとんどの場合、アプリクラッシュします。

dequeueReusableCellWithIdentifier:セルを取得するためにメッセージを使用していることを確認してください。

デリゲートtableView:cellForRowAtIndexPath:を修正して、最も多くのリソースを消費するものを見つけます。それは、ハード UIImage 処理または同様のものである可能性があります。すべての処理、データの生成などをセルの作成から移動することを検討する必要があります。セルに適切なデータのみを設定して返します。パフォーマンスの問題を大幅に軽減できると確信しています。

于 2012-08-30T02:47:39.247 に答える
0

それはできません。すべてのビューは、フォアグラウンドになると自分自身を描画し、バックグラウンドでは何もしません。

于 2012-08-30T02:18:05.137 に答える