我遇到了一个问题:我有2个UITableView部分,我希望第一部分中的单元格可以删除(当向左滑动显示删除时),第二部分中的单元格无法删除。
有人给我一个提示,谢谢。
答案 0 :(得分:0)
您可以从tableView:canEditRowAtIndexPath:
协议实施UITableViewDataSource
方法,以确定是否可以删除该行...
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 1) {
return NO;
} else {
return YES;
}
}
然后,要处理删除,您将使用tableView:commitEditingStyle:forRowAtIndexPath:
方法...
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// Check editing style and take action (delete or edit)
if (editingStyle == UITableViewCellEditingStyleDelete) {
NSLog(@"Delete row %ld in section %ld", (long)indexPath.row, (long)indexPath.section);
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
}
}
我假设您已经实施了UITableViewDataSource
委托协议,因此只应添加这些方法。