2

FacebookのiOS向け「アプリ」を調べてみると、スクロールUITableViewがとても速いです。アプリがデータを別のスレッド (メイン スレッドではなく) のセルにレンダリングしているようです。

私も同様のアプリケーションを開発しています。しかし、私のアプリのスクロール速度は良くありません。画像の遅延読み込みを使用しています。それでもスクロール速度は遅いです。

UITableViewCell(メインスレッドではなく)別のスレッドでカスタムを設定することは可能ですか????

返信ありがとう

4

1 に答える 1

1

UITableViewCellごとに次のタスクがあるとします

  1. サービスからデータを取得
  2. サービスから画像を取得
  3. コンテナのサイズに合わせて画像のサイズを変更します(取得した画像が大きい場合は、これを行う必要があります)
  4. あなたのデータを表示します

バックグラウンドで 1 、 2 、 3 を実行する必要があります

しかし、メインスレッドで 4 を実行する必要があり、実行する必要があります。

すべてのテーブルビューセルごとに個別のスレッドを作成してから、タスク 1 、 2 、 3 に対して再度 3 を作成しないでください。実際にリソースを浪費しています。

それでは、すべてのことについてスレッドを作成せずに、これらすべてのバックグラウンドをどのように行うことができるでしょうか。

グランドセントラルディスパッチ(GCD)を利用する

GCDで読んでください。

迅速な回避策が必要な場合は、ここにあります

Well. Task Number 4 has two things to do.

4(a) Update Some text on table cell for Date we get. 4(b) Display Fetched and Resized Image.

I'm Taking
1 and 4(a)

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

       1. DO 1 Here
       2. Call a Call Back When your Task is Done
        example
        CallBack(Response);

});


CallBack(Response *)response{

   dispatch_async(dispatch_get_main_queue(), ^{

        Do your 4(a) Here
   });
}
于 2013-03-18T04:42:46.997 に答える