0

テーブル ビューに 10 行を入力します。表を上にスクロールすると、最初の 2 行または 3 行がしばらくフリーズします。最後の行が 2 ~ 3 秒間しか表示されません。テーブルをスクロールすると cellForRowAtIndexPath と willDisplayCell 関数が呼び出されることがわかりました。私はそれらの機能を使用しています。これらの関数の呼び出しにより、応答時間が短縮されているようです。テーブルをスクロールするときにこれらの関数の呼び出しを無効にするにはどうすればよいですか? スクロールを無効にしたくないことに注意してください。

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

cell.textLabel.text = [[self.items objectAtIndex:indexPath.row] valueForKey:@"name"]; 

if ([indexPath row] % 2) 
    cell.backgroundColor = [UIColor whiteColor];
else 
    cell.backgroundColor = [UIColor colorWithRed:0/255.0 green:46/255.0 blue:59/255.0 alpha:0.1];

return cell;
4

2 に答える 2

1

それはできませんが、これはテーブルビューの通常の動作ですが、これらの関数のパフォーマンスを向上させる必要があります。たとえば、リモート ソースから画像を読み込む場合は、遅延読み込み手法の使用を検討してください。

于 2012-07-02T18:51:26.977 に答える
1

これらのメソッドの呼び出しを止めることはできません。それらのコードを投稿すると、それらを最適化するのに役立ちます。

UITableViews の速度低下の最大の原因は、セルを再利用していないことです。細胞を再利用していますか?

于 2012-07-02T18:53:01.690 に答える