调用willTransitionToState时的未知UITableViewCellStateMask值

时间:2013-02-27 12:47:27

标签: ios uitableview

在API文档中,单元格状态掩码文档定义为

enum {
   UITableViewCellStateDefaultMask                     = 0,
   UITableViewCellStateShowingEditControlMask          = 1 << 0,
   UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1
};

但是,当我在UITableView处于编辑模式时按下减号按钮时,willTransitionToState的参数为3

- (void)willTransitionToState:(UITableViewCellStateMask)state{
    [super willTransitionToState:state];
    if(state == 3){
        //When minus button is pushed, value of state is 3
    }
}

我在哪里可以找到定义?

1 个答案:

答案 0 :(得分:5)

这是预期的行为。

UITableViewCellStateShowingEditControlMask(A)设置为true。这是合乎逻辑的,因为您仍然可以看到编辑控件。您只需按下减号按钮,UITableViewCellStateShowingDeleteConfirmationMask(B)也会设置为true。

因此,

(A) = 1 << 0 = 1   00000001
(B) = 1 << 1 = 2   00000010
----------------------------
(A) + (B)    = 3   00000011