-1

私はFacebookのようなiPhoneアプリケーションを開発していますが、目的は異なります。UITableViewコンテンツ、写真、いいね、コメント、タイトルなどのすべての行のデータの配列があります。継承するカスタムセルがありUITableviewcell、次のようなすべてのUIオブジェクトを作成しました。UIIMageViewUILabelなどUIButton。スクロールしている間UITableView、データをこのカスタムセルにフィードし、正常に動作します。

私の問題はスクロール速度です!

私がスクロールしているときはいつでも、それに打たれ、スクロールが遅いです。すべてのUIコンポーネントの割り当ては、メインスレッドで行われます。

スクロール速度を上げたり、別のスレッドでUIコンポーネントに値を割り当てたりする方法はありますか?

4

6 に答える 6

2

それが問題です、All my UI components assignment are done in main thread.!!

URL やその他のリソースを取得するためにメイン スレッドを使用しないでください。ユーザーエクスペリエンスに影響します。画像の URL の取得などは別のバックグラウンド スレッドで実行し、ダウンロードが完了したら画像データでメイン スレッドを更新する必要があります。これで問題が解決するはずです。

また、メイン スレッドで実行されているタスクを把握し、UI に関連していないタスクを確認し、これらのタスクをバックグラウンド スレッドに移動します...

UITableViewCell での画像の遅延読み込み

于 2013-01-03T08:45:50.603 に答える
0

次の方法でそれを行うことができます:

1)カスタムテーブルビューセルを取ります。(必須ではありませんが、見栄えが良く最適化されたコードには適しています)。

2) セル内の画像に LazyLoading を実装します。

遅延読み込みは、高速スクロールとメモリ最適化に適した方法です。

テーブルビューでの遅延読み込みのデモが用意されており、Apple も同じものを提供しています。

これで問題が解決します。

乾杯とハッピーコーディング!

于 2013-01-03T08:51:30.170 に答える
0

画像を読み込むためにAsyncImageViewを使用しますUITableViewCells

于 2013-01-03T09:44:25.653 に答える
0

この問題は、画像のダウンロードが原因で発生します。表を下にスクロールすると、表のセルが作成され、他のセルが解放されます。セルが作成されると、そのセルの画像がダウンロードされ、そのときにメインスレッドが一時停止します。画像がダウンロードされると、次のセルに移動します。

メインスレッドではなく別のスレッドで画像をダウンロードする必要があります。developers.apple.com のサンプル コードはすでに提供されています。これを確認してください。私はそれがあなたを助けると思います。

lazy Loding のサンプルプロジェクトコード

于 2013-01-03T09:01:35.940 に答える
0

テーブルビューで遅延読み込みを作成するには、以下のリンクを試してください。これにより、テーブルビューのスクロールがスムーズになります

https://github.com/enormego/EGOImageLoading

http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html

ハッピーコーディング!!!!

于 2013-01-03T09:03:00.550 に答える
0

あなたが求めていたことが実際に得られたかどうかはわかりませんが、テーブルビューをスクロールすると、遅れているように見えますか? データを取得するためですか?

これを試してください: https://github.com/rs/SDWebImage

手順は非常に簡単で理解しやすい.. これは、YouTube フィード (画像、ビデオのタイトル、ビデオの説明、投稿日など) を作成しようとしたときに行ったことです。それがあなたを助けることを願っています

于 2013-01-03T09:41:44.333 に答える