0

ビューからスクロールするとセルがメモリから取り出され、スクロールしてビューに戻るとメモリに追加されることに気付きました。

これにはパフォーマンス上の理由がありますが、私のテーブルにはいくつかのセルしか表示されていないため、このキャッシュ機能をオフにする方法はありますか?

4

1 に答える 1

1

インデックス パスごとに異なるセル識別子を使用してみてください。

そうUITableViewすれば、デキューするセルを見つけることができず、新しいセルが提供されます。

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

    NSString * CellIdentifier = [NSString stringWithFormat:@"%d - %d", indexPath.row, indexPath.section];
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    return cell;
}

また、キューイング/デキューイングを完全にスキップし、それらへの参照を自分で保持してから、それらを次のように返すこともできますcellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    return [myCells objectAtIndex:indexPath.row];
}

myCellsあなたの s を保持する配列はどこにありますかUITableViewCell

于 2012-06-06T13:54:50.217 に答える