Dynamic view changes (i.e. UILabel) with autoLayout
我需要创建两个 UILabels,它们应该根据
第一个
第二个
的右侧对齐 7 个点
...
并发现水平约束被覆盖。
尝试更改
请指教,
谢谢阿萨夫
您可以通过代码或 StoryBoard 自动布局实现结果。以下是 Storyboard 自动布局的步骤:
1.确保您的单元格带有两个标签并且没有自动布局约束(如果有,请清除它们)
2.向
添加约束
3.向
添加约束
结果:
备注:
-
对布局的操作应该通过覆盖视图控制器中的
updateViewConstraints 来完成。只是不要忘记调用[super updateViewConstraints] 。 -
在你的情况下不需要处理
sizeToFit: 方法。
问题 1)
实际上你可以在代码中做到这一点。但我认为 Interface Builder 在你的情况下更好。
我认为您不必在代码中 [sizeToFit:]。
如果您没有为标签设置宽度限制,我认为您的故事板中有警告。
像 UILabel、UIButton 这样的 UIControls 具有固有的大小,因为它们具有文本内容。所以你不需要设置宽度约束。
但是你有两个标签,当标签之间存在冲突时,你应该让自动布局知道哪个标签更重要。 - 前任。如果标签有长文本,则显示哪个标签的文本而不缩短(...)。
为此,请在 Interface Builder 中设置拥抱(或压缩)优先级。
问题 2)
[viewDidLoad:] 不适合改变几何的东西。 [viewWillAppear:]
之后的视图层次结构中添加了 UIViewController 的视图
如果您需要更多信息,请告诉我。