如果我有很多单元格,谁能告诉我管理UITableView的正确方法是什么?每个单元的界面取决于部分(每个单元在其内容视图中保留不同的UI元素)。我不想使用可重复使用的单元格,因为它会导致重叠。

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

 } else {
    cell = nil;
    [cell release];
    cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault nil] autorelease];
 }

最佳答案

不,您的代码不正确。首先,它甚至无法编译,因为[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault nil]是无效的语法。其次,[cell release];行没有任何作用(这是好的,因为如果有的话,那是错误的),但是它的存在表明您尚未了解内存管理概念(尚未)。

第三,也是最重要的是,您绝对应该使用表视图的单元格重用,特别是如果您有一个大表。如果您具有不同类型的单元格,则只需为其使用不同的重用标识符,就没有问题。然后,表视图将创建多个重用池,并始终在dequeueReusableCellWithIdentifier:中返回您要求的类型的单元格。

09-10 14:01
查看更多