0

私は非常に大きな UITableView (画面の幅と高さの約 10 倍) を持ち、その上に水平にスクロールできる UIScrollView がある iPad アプリを開発しています。

すべての UITableViewCell に、さまざまな量の UIView を追加します。私の問題は、スクロールのパフォーマンスが非常に悪いことです。そのため、Google で解決策を検索しましたが、問題に適したものは見つかりませんでした。

問題は、スクロールが完了すると画面全体が再描画されることだと思いますが、これを制限する方法がわかりません...

誰でも解決策を提供できますか?

ありがとう。

4

3 に答える 3

1

パフォーマンスを向上させるための簡単な鍵は、で時間のかかるタスクを実行しないことですcellForRowAtIndexpath

パフォーマンスを向上させるために多くのトリックを使用できます。たとえば、ビューをバックグラウンドスレッドにロードします。

このSO投稿では、さまざまなトリックについて説明しています。

于 2012-05-15T13:02:22.597 に答える
1

セルの再利用性を維持し、可視領域で必要なビューのみをロードする必要があります。画像の遅延ロードと同じです。

于 2012-05-15T13:01:16.213 に答える
1

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"]; を実行する必要があります。セルを再開します。まだ行っていない場合は、次のことを行う必要があります。

あなたの

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

メソッドには、次のものが必要です。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"] autorelease];
}

Appleのドキュメントからこれを見てください。

お役に立てれば。

于 2012-05-15T13:10:32.877 に答える