iOS,Autolayout 派生高度,不知道如何?

标签 ios cocoa-touch autolayout

我有一个自动布局的问题。我连续有一些标签,它们在一个 View 内,在另一个 View 内。

我只设置了外部 View 的高度。

我不知道内部 View 和标签的高度是如何得出的。

我对其他一切都有限制。
例如。一个标签有..
领先空间
比例宽度
顶部空间
尾随空格

内容拥抱优先级 - 251
内容压缩 - 750
内在大小 - 默认

我一直在阅读有关内在内容大小和抗压性和内容拥抱的信息。我尝试更改标签的字体大小,认为这会增加大小,但事实并非如此。

我不确定发生了什么,但自动布局是否满意?

编辑:约束 - 根据要求

enter image description here

enter image description here

enter image description here

内 View 的约束

"<NSLayoutConstraint:0x7b3e0290 UILabel:0x7b36abd0'12'.width == 0.17*UIView:0x7b3d9e50.width>",
"<NSLayoutConstraint:0x7b3646d0 H:|-(0)-[UILabel:0x7b36abd0'12']   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b363680 V:|-(0)-[UILabel:0x7b36abd0'12']   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b362b30 UILabel:0x7b36a390'x'.width == 0.15*UIView:0x7b3d9e50.width>",
"<NSLayoutConstraint:0x7b362440 H:[UILabel:0x7b36abd0'12']-(4)-[UILabel:0x7b36a390'x']>",
"<NSLayoutConstraint:0x7b362050 V:|-(0)-[UILabel:0x7b36a390'x']   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b35fa90 V:|-(0)-[UILabel:0x7b3ee210'12']   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b35f5d0 H:[UILabel:0x7b36a390'x']-(4)-[UILabel:0x7b3ee210'12']>",
"<NSLayoutConstraint:0x7b360230 UILabel:0x7b3ee210'12'.width == 0.16*UIView:0x7b3d9e50.width>",
"<NSLayoutConstraint:0x7b35e6d0 H:[UILabel:0x7b3ee210'12']-(4)-[UILabel:0x7b36d800'=']>",
"<NSLayoutConstraint:0x7b364bf0 V:[UILabel:0x7b36d800'=']-(0)-|   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b361f10 V:|-(0)-[UILabel:0x7b36d800'=']   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b364500 UILabel:0x7b36d800'='.width == 0.13*UIView:0x7b3d9e50.width>",
"<NSLayoutConstraint:0x7b357460 H:[UILabel:0x7b36bbf0'144']-(0)-|   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b363580 V:|-(0)-[UILabel:0x7b36bbf0'144']   (Names: '|':UIView:0x7b3d9e50 )>",
"<NSLayoutConstraint:0x7b357b20 H:[UILabel:0x7b36d800'=']-(4)-[UILabel:0x7b36bbf0'144']>",
"<NSLayoutConstraint:0x7b358430 UILabel:0x7b36bbf0'144'.width >= 0.25*UIView:0x7b3d9e50.width>"

最佳答案

检查日志中的 11 约束,您已将内部 View 的底部约束添加到标签底部。

"<NSLayoutConstraint:0x7b364bf0 V:[UILabel:0x7b36d800'=']-(0)-|   (Names: '|':UIView:0x7b3d9e50 )>",

这定义了内部 View 的底部。因此内部 View 被固定到 UILabel 的顶部和底部。
这就是内 View 的高度被派生并等于你 UILabel 的原因

关于iOS,Autolayout 派生高度,不知道如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679931/

相关文章:

iphone - 使用 AVAssetReader 从远程 Assets 读取(流)

objective-c - 来自的Objective-C异步回调

crash - Xcode 8在演示图板 View 上崩溃,并且在 View 周围仅显示蓝色轮廓

ios - 什么是 'UIView-Encapsulated-Layout-Width' 约束?

ios - 在 iOS 中使用自动布局,如何将标签放置在其包含 View 高度的 1/3 处?

ios - xcode 5构建比xcode 6构建更重

ios - 创建 UICollectionViewController 子类并添加为 childviewcontroller

objective-c - 在 Storyboard中,如何制作用于多个 Controller 的自定义单元格?

ios - 为什么我无法在 AppDelegate 中以编程方式更改我的初始 View Controller ?

ios - 无需触摸即可滑动 UITableViewCell