如何检测是否隐藏了删除按钮UItableviewcell?

时间:2012-05-17 08:23:59

标签: iphone objective-c ios cocoa-touch ios5

我有一个包含UITableView的视图。 当用户滑动时,我可以在单元格上显示删除按钮。

如果用户触摸删除按钮,将触发一个方法(这很好)。 但是,如果用户决定不删除单元格,并且他触摸视图中的任何位置以隐藏删除按钮。

我该如何检测?

3 个答案:

答案 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...
        // ...
    }
}