我有一个带有自定义单元格的分组 UITableView
(由子类UITableViewCell
创建)。我添加子视图并插入子图层,如下所示:
[self.contentView addSubview:myUILabel];
和
[self.contentView.layer insertSublayer:myCALayer];
进入编辑模式以删除行时,单元格向右移动,myUILabel
和myCALayer
超出单元格的边框,这看起来很难看。
我试过了:
Grouped UITableView with custom UILabels in Editing Mode
......但它没有帮助。
在我的自定义单元格
中覆盖setEditing:
是什么“有点”
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
CGRect oldBounds = self.myCALayer.bounds;
CGRect newBounds = oldBounds;
CGPoint oldPosition = self.myCALayer.position;
CGPoint newPosition = oldPosition;
//move right
if (editing && !self.showingDeleteConfirmation) {
newBounds.size.width -=32;
newPosition.x -= 15;
}
//move back left
else if (self.editing) {
newBounds.size.width += 32;
newPosition.x += 15;
}
self.myCALayer.bounds = newBounds;
self.myCALayer.position = newPosition;
[super setEditing:editing animated:animated];
}
...但是,动画不会同步执行。当进入编辑模式时单元格向右移动时,首先图层的宽度会缩小,然后位置会发生变化。虽然图层最终适合单元格,但动画看起来很糟糕。
感谢您的建议!