4

我创建了一个包含 2 个部分的表格,我希望应用程序在按下编辑按钮时仅在第一部分而不是第二部分显示删除按钮,我编写了以下代码

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
Book_own *temp= (Book_own *)[self.books objectAtIndex:indexPath.row];

if (editingStyle == UITableViewCellEditingStyleDelete) {
    // Delete the row from the data source

    [books removeObjectAtIndex:indexPath.row];

    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

}

else if (editingStyle == UITableViewCellEditingStyleInsert) {
    // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}  
}
}

但是当我按下编辑按钮时,它会在两个部分中显示删除按钮,我怎样才能防止这种情况并在第一部分中进行删除???

4

4 回答 4

1

'UITableViewCellEditingStyleNone' 可以为您已经实现的委托中的特定部分设置。只需返回它。

您可以使用以下代码实现它:-

在 cellForRowAtIndexPath 中:-

if(indexPath.section==0)
{
cell.editing=NO;
}
于 2012-05-19T11:56:56.367 回答
1

dataSource可以实现tableView:canEditRowAtIndexPath:返回 YES 或 NO 。

于 2012-05-19T11:58:53.273 回答
1

试试这个...

-(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

        if(indexPath.section == yourVariable) return UITableViewCellEditingStyleDelete;

        else return UITableViewCellEditingStyleNone;

    }
于 2012-05-19T12:00:11.407 回答
1

您可以检查该特定部分: if(indexPath.section == editSection){

返回 UITableViewCellEditingStyleDelete;

}

    else{

返回 UITableViewCellEditingStyleNone;

}

于 2012-05-19T13:59:15.493 回答