【问题标题】:set superview height constraint according to subview height constraint根据子视图高度约束设置超级视图高度约束
【发布时间】:2015-08-30 22:17:41
【问题描述】:

1) 视图 A 、视图 B 、视图 C 的高度和宽度相等

2) View A 高度取决于 Label1 & Label2 高度

3) View B 高度取决于 Label3

4) 视图c高度取决于Label4

5) 我想从视图 A、视图 B 和视图 C 中获取最大高度,但它们都是相等的

6) 视图 X 高度取决于(视图 A、视图 B 和视图 C)的最大值

如何通过自动布局实现这一点?

提前致谢

【问题讨论】:

  • 只做一个superview的高度约束的出口...当你得到subview的最大高度时,设置superview_height.constant = subview_height
  • @Bhavin,感谢您的回答,但我的标签文本已设置,然后当我尝试获取该标签的高度时,它显示的值错误。
  • 尝试在viewWillLayoutSubviews中获取高度,你得到正确的高度
  • @Bhavin,有时我的身高还是错了。
  • @Bhavin,我尝试像这样获得标签的高度:lbl.frame.size.height 可以吗?

标签: ios iphone xcode storyboard autolayout


【解决方案1】:

可以在 Xib 或 Storyboard 中轻松完成。请参阅创建的约束的屏幕截图。

V1 --> 第一个视图

V2 --> 第二视图

V3 --> 第三视图

V1L1 --> 第一个视图的第一个标签

V1L2 --> 第一个视图的第二个标签

V2L1 --> 第二个视图的第一个标签

V3L1 --> 第三个视图的第一个标签

第一个视图的宽度约束为 180,所有视图(V1、V2、V3)都具有等宽和等高约束。

在属性检查器中将所有标签行数设置为,这使得标签高度随着标签文本的增加而增加。

V1、V2、V3 的高度由标签的内容决定。

视图高度根据标签内容增加,并且所有视图的高度都相同,因此内容视图高度将是max(V1.height, V2.height, V3.height) 的高度。还有V1.height = V2.height = V3.height = max(V1.height, V2.height, V3.height)

下面是约束的清晰图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2017-09-27
    • 2015-01-30
    • 2014-10-21
    • 1970-01-01
    相关资源
    最近更新 更多