我有一个包含UITableView的视图。 当用户滑动时,我可以在单元格上显示删除按钮。
如果用户触摸删除按钮,将触发一个方法(这很好)。 但是,如果用户决定不删除单元格,并且他触摸视图中的任何位置以隐藏删除按钮。
我该如何检测?
答案 0 :(得分:3)
[UITableViewCell showingDeleteConfirmation]
或
以[UITableViewCell willTransitionToState:]
作为参数的 UITableViewCellStateShowingDeleteConfirmationMask
答案 1 :(得分:3)
当用户点击单元格中的删除标记之外时,您的程序应该会在表格视图委托上接到对tableView:didEndEditingRowAtIndexPath:
的调用。
答案 2 :(得分:1)
在UITableViewCell子类中实现willTransitionToState:方法。当单元格正在转换为编辑状态时,UITableView会调用此方法。
在您的类的实现中,您需要有条件地检查传递给方法的mask参数的值,以确定单元格转换到哪个状态。掩码的可能值是......
enum {
UITableViewCellStateDefaultMask = 0,
UITableViewCellStateShowingEditControlMask = 1 << 0,
UITableViewCellStateShowingDeleteConfirmationMask = 1 << 1
};
在你的情况下,你会想要观察到UITableViewCellStateDefaultMask的转换,所以你的实现将如下......
- (void)willTransitionToState:(UITableViewCellStateMask)state {
if (state == UITableViewCellStateDefaultMask) {
// User has switched back to default state...
// ...
}
}