旋转

时间:2016-12-20 10:38:00

标签: objective-c uitableview autolayout interface-builder

所以我将UITableViewCell子类化并为其提供了适当的xib文件 为了保持简单,我只能说我有3个UILabel并排 它们之间的间距为8,并且调整大小以适应其内容,但第一个除外,它占用了单元格中的剩余空间。
第一个标签(Label1)对其他标签和超级视图都有尾随空间限制。这些约束的Installed属性未经检查,并通过IBOutlet s连接到我的子类 在视觉上它看起来像这样:

[Label1] - 间距 - [Label2] - 间距 - [Label3]

根据显示的数据,可以隐藏右侧2 UILabel。如果隐藏第一个,它应该如下所示:

[Label1] - 间距 - [Label3]

隐藏标签是在tableView:cellForRowAtIndexPath:中完成的,我在其中调用一个方法来设置xib文件中的适当约束,该约束可以通过IBOutlet访问。这很完美。但是在旋转设备时,约束是从xib文件重新加载的,其中没有约束Installed,但updateConstraints - 子类上没有再次调用UITableViewCell,搞乱了一切。

修复它的一种方法是,在tableView:cellForRowAtIndexPath:我可以在我的layoutSubviews - 子类中的UITableViewCell中调用它,而不是调用方法来设置适当的约束。但我认为你不应该更新layoutSubviews中的约束。

0 个答案:

没有答案