gpt4 book ai didi

iphone - 在编辑模式下使用带有 subview /图层的自定义单元格对 UITableView 进行分组

转载 作者:行者123 更新时间:2023-11-28 17:43:44 38 4
gpt4 key购买 nike

我有一个带有自定义单元格的分组 UITableView(通过子类化 UITableViewCell 创建)。我像这样添加 subview 和插入子层:

[self.contentView addSubview:myUILabel];

[self.contentView.layer insertSublayer:myCALayer];

当进入删除行的编辑模式时,单元格向右移动,myUILabelmyCALayer 超出单元格的边界,看起来丑。

我试过这个:

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];
}

...但是,动画不是同步执行的。发生的情况是当单元格在进入编辑模式时向右移动,首先层的宽度缩小,然后位置发生变化。虽然图层最终适合单元格,但动画看起来很糟糕。

感谢您的建议!

最佳答案

不确定你的图层,但是你应该能够在你的 subview 上设置一个智能的 autoresizingMask,这样当 contentView 的大小被改变时,它们会适本地重新布局tableview(进入编辑模式)。

更多here.

编辑:稍微看一下,我认为 CALayeranchorPoint 属性可能有助于您的子层。 (更多here)

或者(这有点 hack,可能会在一定程度上损害性能),您可以在 UIView 上设置您的自定义层,并适当设置 autoresizingMask

关于iphone - 在编辑模式下使用带有 subview /图层的自定义单元格对 UITableView 进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7045375/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com