在UITableView
我看来,我想应用某个部分的滑动删除模式行。我已经实现的内容如下:
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@">> canEditRowAtIndexPath");
if (indexPath.section == CanDeletedSection) {
return YES;
}else{
return NO;
}
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@">> editingStyleForRowAtIndexPath");
if (indexPath.section == CanDeletedSection) {
return UITableViewCellEditingStyleDelete;
}
return UITableViewCellEditingStyleNone;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@">> commitEditingStyle");
if (editingStyle == UITableViewCellEditingStyleDelete) {
// dosomething
}
}
但是当我滑动表格行时,有时会Delete
出现按钮,有时不会出现。顺便说一句,我的单元格是自定义的并继承自UITableViewCell
.
我已将上述方法添加NSLog
到上述方法中。当Delete
按钮不出现时,我得到这样的日志:
>> editingStyleForRowAtIndexPath
>> canEditRowAtIndexPath
当Delete
按钮出现时,日志如下:
>> editingStyleForRowAtIndexPath
>> canEditRowAtIndexPath
>> editingStyleForRowAtIndexPath
>> canEditRowAtIndexPath
>> canEditRowAtIndexPath
>> editingStyleForRowAtIndexPath
我做了一个演示,使用自定义单元格,它工作正常。所以问题是由包含表视图的视图控制器引起的。视图控制器继承自另一个视图控制器,在该视图控制器中,有一个用于隐藏键盘的点击手势。但是当我从视图控制器中删除它们时,结果是一样的。