我的tableview中有9行,并且只想在第1行和第2行添加按钮。第一次运行代码时,它会显示1和2上的按钮。但是当我滚动tableview时,它会随机显示为行4,5,8,9。代码如下。请告诉我我做错了什么。
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"Row %d",[indexPath row]];
if([indexPath row] == 0 || [indexPath row] == 1)
{
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
return cell;
}
答案 0 :(得分:3)
这是一个常见的错误。如果只需要某些单元格中的某些内容,则需要重置其他单元格中的值。
if([indexPath row] == 0 || [indexPath row] == 1) {
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
基本上,对于任何给定的单元标识符,您需要为每个索引路径设置相同的属性集。如果您只为某些索引路径设置属性,那么当单元格重用时,您将开始看到问题。