【问题标题】:UITableView certain rows not editableUITableView 某些行不可编辑
【发布时间】:2015-09-03 14:46:57
【问题描述】:

我已将 UITableView 配置为可编辑。出于某种原因,当按下编辑按钮时,实际上只有某些行是可编辑的。

并非所有用于删除行的红色可点击圆圈都是可点击的。

这是Quicktime video demonstrating the problem

如果您滑动行将其删除(而不是从顶部的编辑按钮开始),也会发生相同的行为 - 某些行是可编辑的;有些不是。

这是我遇到这种情况的一系列事件: 1. 填充表格视图(例如,2 个项目) 2.删除两项 3.增加五项 4. 其中三个项目将是可删除的 - 其他两个(等于最初填充表格的数量)将不可删除。

我有点困惑。任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 你的canEditRowAtIndexPath: / editingStyleForRowAtIndexPath:是什么样的?
  • 我记录了 canEditRowAtIndexPath 的结果,它总是返回 true。另外,当它返回false时,行为不同——不会出现红圈。
  • editingStyleForRowAtIndexPath 未实现。
  • 您的表格视图上是否有任何手势识别器可能会干扰触摸和滑动?
  • 没有先生,没有手势识别器。

标签: iphone ios uitableview


【解决方案1】:

当您实现可食用视图委托时,尝试将其添加到类中:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
automaticEditControlsDidShow = NO;
[super setEditing:editing animated:animated];

if (editing) {
    automaticEditControlsDidShow = YES;
    [self.tableView insertRowsAtIndexPaths:addRow withRowAnimation:UITableViewRowAnimationLeft];
} else {
    [self.tableView deleteRowsAtIndexPaths:addRow withRowAnimation:UITableViewRowAnimationLeft];
}
}

或者尝试实现你的editingStyleForRowAtIndexPath 方法。例如:

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

return UITableViewCellEditingStyleDelete;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 2015-09-16
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多