来自笔尖的自定义UiTableViewCell无需重用?

时间:2014-03-21 07:17:26

标签: ios objective-c uitableview xcode5

我需要使用表中关联的NIB加载自定义单元格,而不使用" dequeueReusableCellWithIdentifier:"

必须加载新的单元格,不想重用旧的..

假设该类被调用" CustomCell.h和CustomCell.m"和NIB CustomCell.xib

如何分配和初始化单元格不使用它们?

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

CustomCell *cell = ??

//cell customization

return cell

}

如何解决问题?

2 个答案:

答案 0 :(得分:5)

您可以使用NSBundle的loadNibNamed方法加载CustomCell,如下所示。

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

CustomCell *cell = [[[NSBundle mainBundle] loadNibNamed:@"NibFile" owner:self options:nil] objectAtIndex:0]

//cell customization

return cell
}

为什么你不想重复使用这个细胞?任何具体原因?每次创建新单元格时,内存消耗会更多。如果需要,您可以使用以下代码重复使用

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier = @"CellIdentifier";

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if(!cell)
    cell = [[[NSBundle mainBundle] loadNibNamed:@"NibFile" owner:self options:nil] objectAtIndex:0]

//cell customization

return cell
}

答案 1 :(得分:0)

CustomCell *theCell = (MyCellClass*) [[NSBundle mainBundle] loadNibNamed:@"MyCellNibFile" owner:self options:nil] ;