UITableViewCell
自定义单元格的内容,例如UILabel
文本,UIButton
标题在滚动表格视图后重置为默认值(标签,按钮)。我使用单个表格中的自定义单元格数量视图。这些是我用于在单个表视图中生成多个自定义单元格的代码,具有不同的标识符和每个单元格的不同自定义单元名称。
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = (customCell1 *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) cell = [[customCell1 alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
{
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"customCell1" owner:self options:nil];
for (id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[UITableViewCell class]])
{
cell = (customCell1 *)currentObject;
break;
}
}
}
static NSString *CellIdentifier2 = @"cell2";
UITableViewCell *cell2 = (customCell2 *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell2 == nil) cell2 = [[customCell2 alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2];
{
NSArray* topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"customCell2" owner:self options:nil];
for (id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[UITableViewCell class]])
{
cell2 = (customCell2 *)currentObject;
break;
}
}
}
cell.label = @"Test";
[cell2.button setTitle:@"Test Button" forState:UIControlStateNormal];
return cell;
return cell2;
答案 0 :(得分:0)
当您将cell / cell2设置为从NIB加载的UITableViewCell时,重用标识符将是XIB中设置的任何内容。
无论如何,你粘贴的代码有很多问题。那是你真正使用的吗?将永远不会返回cell2。
答案 1 :(得分:0)
表视图中的单元格是通过使用单元格标识符出列来动态创建的。在上面提到的代码中,将始终返回“返回单元格”; 数据源方法在创建后一次只能返回一个单元格。因此,如果您想根据使用情况返回一个单元格,您必须执行以下操作
{ //理想情况下,应该像这样创建自定义单元格
if(condition when you wan this cell1)
{
//create the custom cell1 here and return it as given below
static NSString *cellIdentifier = @"MyCustomCell";
// Similar to UITableViewCell
MyCustomCell *cell = (MyCustomCell *)[theTableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[MyCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
return cell1;
}
else if(when you want to create this cell2)
{
// create the custom cell2 here and return it
return cell2;
}
// Create the default UI table view cell and return it . if any of the above condition did not satisfied, it will return the default cell.
//在此处创建默认UI表并返回它 返回细胞; }