相关疑难解决方法(0)

缩进不适用于Custom UITableViewCell

我的项目中有一个简单的Custom UITableViewCell,只是在表格中添加了一个Edit动作.一切似乎都很好,但编辑时缩进不起作用,编辑图标与内容重叠.(更不用说删除按钮)

缩进不适用于自定义单元格
自定义单元格是在界面构建器中创建的,像往常一样使用标准约束,我已经尝试在类中替换layoutSubviews方法,如其他地方所提到的那样没有运气,如下所示;

(void)layoutSubviews
{
[super layoutSubviews];
float indentPoints = self.indentationLevel * self.indentationWidth;

self.contentView.frame = CGRectMake(
                                    indentPoints,
                                    self.contentView.frame.origin.y,
                                    self.contentView.frame.size.width - indentPoints,
                                    self.contentView.frame.size.height
                                    );
}
Run Code Online (Sandbox Code Playgroud)

我还确认子视图实际上在contentView中,并且View和Code中的一切看起来都很好.

Cell还以编程方式设置了indentationLevel/Width,并将掩码自动调整为自动宽度.

作为最后的手段,我可​​以以编程方式创建UITableViewCell,但不认为它可以提供帮助.

根据推荐,我还确保将单元格内容的约束固定到superview.

固定左边的边距

还可以在Code中手动设置de autoResizingMasks,但没有运气

- 编辑:

我已手动将contentView的背景颜色设置为黑色,并发现它在编辑模式下正确缩进,即使没有覆盖"layoutSubviews".事实上,用它做得更好.

在此输入图像描述

但是,正如您所看到的,内容不会缩进.最初我认为单元格的内容(UIImage)不是contentView的子视图,但是对子视图进行了记录,显示它们是.

NSLog(@"%@", self.contentView.subviews);

"<UIImageView: 0xa477030; frame = (23 7; 31 50); autoresize = TM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xa477090>>"
Run Code Online (Sandbox Code Playgroud)

我完全迷失了为什么这种情况在这里不断发生.必须是一些与iOS 6新约束相关的隐藏约束.

objective-c indentation uitableview ios

6
推荐指数
1
解决办法
6753
查看次数

使用自动布局进行编辑时,在表视图中调整子视图的大小

我有一个原型单元格的表视图.目前我只在细胞中添加了一个标签.启用编辑模式时,将出现一个删除按钮,使单元格变小,但标签不会重新定位.这曾经是自动化面具的问题,但现在我似乎无法让它工作.

有没有人知道我应该如何配置自动布局,以便在编辑模式下将标签放在单元格内?

在此输入图像描述

iphone uitableview autolayout

5
推荐指数
1
解决办法
2927
查看次数

标签 统计

uitableview ×2

autolayout ×1

indentation ×1

ios ×1

iphone ×1

objective-c ×1