我需要使用表中关联的NIB加载自定义单元格,而不使用" dequeueReusableCellWithIdentifier:"
必须加载新的单元格,不想重用旧的..
假设该类被调用" CustomCell.h和CustomCell.m"和NIB CustomCell.xib
如何分配和初始化单元格不使用它们?
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomCell *cell = ??
//cell customization
return cell
}
如何解决问题?
答案 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] ;