【发布时间】:2014-11-17 13:47:45
【问题描述】:
我想知道用户何时对UITableView 的单元格应用滑动操作。根据文档,我应该使用的 UITableViewDelegate 方法如下:
- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath;
- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath;
willBegin... 被调用一次,didEnd... 被调用两次。这有什么原因吗?
我的目标是知道用户何时在单元格上执行了滑动手势,然后是取消手势(他不想删除任何内容)。这是为了在未执行任何操作时恢复先前选择的单元格(根据UITableView loses selection)。
有什么提示吗?
【问题讨论】:
-
我没有看到这种行为。创建一个功能最少的简单表格视图。你还看到这种行为吗?也许您当前的代码正在做一些导致双重调用的事情。
-
@rmaddy 我用 UITableView 设置了一个最小的示例代码,并且行为仍然存在。这发生在模拟器上。我会在设备上尝试。谢谢。
-
@rmaddy 问题仅限于模拟器。我目前使用的是 8.1。够奇怪的。
-
我收回了。在 iOS 8.1 下(至少)我看到了两个对
didEndEditing的调用。这是在真实设备上。我有一个包含一行的表格视图。我做了滑动删除。willBeginEditing被调用。删除按钮出现。然后我点击了行外的表格视图,didEndEditing被调用了两次。我想知道这是否是 iOS 8 的问题。 -
@rmaddy 我正在运行 iOS 7 设备,其中源代码是使用 iOS 8.1 和 xCode 6.1 编译的。我只看到一个电话。我没有尝试使用 iOS 8 设备。我应该上传雷达。
标签: ios objective-c uitableview ios7 ios8.1