确定UITableViewCell是否正在从"swipe"或"self.editButton"进行编辑

Cra*_*tis 1 iphone cocoa-touch uitableview

我正在尝试确定UITableViewCell子类是否处于编辑模式,从用户的滑动(在这种情况下我不需要缩进我的子视图)或用户按下与UITableViewController关联的"编辑"按钮.(在这种情况下,我这样做.)

从单元格的角度来看,我知道这是可能的,因为self.textLabel视图会自动缩进.我试过了:

-(void)layoutSubviews {
   [super layoutSubviews];

   CGRect labelFrame = self.textLabel.frame;
   labelFrame.origin.x += 5;
   myCustomUILabel.frame = labelFrame;
}
Run Code Online (Sandbox Code Playgroud)

但我的自定义标签没有正确缩进.(虽然self.textLabel视图确实如此?)

我想避免以下情况:

  • 为单元格提供对父表的引用.
  • 覆盖UITableViewController类中的方法,让单元格知道它们是单独编辑还是整个表正在编辑.

Rob*_*und 6

您可以willTransitionToState:UITableViewCell子类中覆盖.按下"编辑"按钮时,状态为UITableViewCellStateShowingEditControlMask(= 1),滑动时为UITableViewCellStateShowingDeleteConfirmationMask(= 2).

  • 如果您单击"编辑"然后点击" - "按钮,状态掩码将为3. (6认同)
  • 由于状态被称为面具,我认为你是正确的. (3认同)