想要在TableView中向几个单元格添加一个按钮

时间:2013-09-10 01:26:55

标签: iphone ios

我的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;
}

1 个答案:

答案 0 :(得分:3)

这是一个常见的错误。如果只需要某些单元格中的某些内容,则需要重置其他单元格中的值。

if([indexPath row] == 0 || [indexPath row] == 1) {
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}

基本上,对于任何给定的单元标识符,您需要为每个索引路径设置相同的属性集。如果您只为某些索引路径设置属性,那么当单元格重用时,您将开始看到问题。