iOS,自动布局导出高度,不知道如何?

标签 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,自动布局导出高度,不知道如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37679931/

相关文章:

ios - 以编程方式设置一组 View 的布局约束

ios - 根据手机方向更改 UITableViews

ios - UIScrollView 内的水平 UIStackView 不滚动

从另一个类访问时,swift 类变量不会被更改

ios - 当框架更改时,UIView 背景颜色不会重绘(在动态扩展的 TableViewCell 中)

ios - 在横向和纵向之间切换时出现约束异常的iOS AutoLayout

iOS7导航栏半透明=否

ios - 如何在多点触控序列中有效地处理 UITouches

ios - 如何将 UIColor 转换为 HEX 并在 NSLog 中显示

javascript - 我想将 JSON 数据传递给与 web View 相关的 javascript 函数。但是我无法从 Javascript 函数中获取响应数据