我正在尝试确定UITableViewCell子类是否处于来自用户滑动的编辑模式(在这种情况下我不需要缩进我的子视图),或者是用户按下与UITableViewController关联的“编辑”按钮。 (在这种情况下,我这样做。)
我知道从单元格的角度来看,这是可能的,因为self.textLabel
视图会自动缩进。我试过了:
-(void)layoutSubviews {
[super layoutSubviews];
CGRect labelFrame = self.textLabel.frame;
labelFrame.origin.x += 5;
myCustomUILabel.frame = labelFrame;
}
但我的自定义标签没有正确缩进。 (虽然self.textLabel
视图可以吗?)
我想避免以下情况:
答案 0 :(得分:6)
您可以覆盖willTransitionToState:
子类中的UITableViewCell
。按下“编辑”按钮时,状态为UITableViewCellStateShowingEditControlMask
(= 1),滑动时为UITableViewCellStateShowingDeleteConfirmationMask
(= 2)。
答案 1 :(得分:1)
您不应该手动进行缩进。 UITableViewCell将为您完成!
您所要做的就是确保将子视图添加到UITableViewCell的“contentView
”。这就是self.textLabel
正确缩进的原因。
查看UITableViewCell的contentView属性文档:
UITableViewCell对象的内容视图是单元格显示的内容的默认超级视图。如果您想通过简单地添加其他视图来自定义单元格,则应将它们添加到内容视图,以便在单元格进入和退出编辑模式时将它们正确定位。