ios - 大于或等于约束无法正常工作

标签 ios autolayout

我有一个 UIView,里面有 3 个 UIView,我需要每个 UIView 都根据它的内容和在同时,父 View 应根据其 subview 更改其大小。但我遇到了这个问题:

Not working properly

我需要从第二列的高度开始的第一个 UIView 始终坚持其内容并将剩余空间留在列的末尾。换句话说,我想要的是第二列的第一个 UIView 缩小。

这是我的 IB,大于或等于 约束没有按我预期的那样工作(我突出显示了相关约束):

Interface Builder

我试过更改优先级但没有任何效果,希望你能帮助我,谢谢。

编辑:我忘了显示每个 UIView 中发生的事情。图片可能存在也可能不存在,如果不存在,我将其删除并将 UIView 的高度责任“传递”给标签,仅此而已:

Inside each UIView

最佳答案

大于或等于约束将始终尽可能小,同时满足所有其他约束。所以在这种情况下它是正确的...

之所以正确,是因为您使用的标签将允许其框架超出其内容。

要解决此问题,您需要更改右侧两个标签上的content hugging priority

为此,选择标签并转到 Interface Builder 属性检查器中的测量部分。

在底部附近,您会看到“Content Hugging Priority”。将此的 vertical 值更改为 1000(也称为必需)。

这将告诉标签保持其框架尽可能小以适应内容。因此,大于约束必须更高才能满足这一点。

关于ios - 大于或等于约束无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214889/

相关文章:

ios - 自动布局动态 UITableView 单元格高度

ios - 为什么当我相对于 super View 的底部进行约束时,它是从 super View 的顶部进行操作的?现在是这样吗?

ios - 如果我淡出导航栏,然后实际上以编程方式隐藏它,我该如何做到这一点,如果我撤消它,就不会有时间问题?

iOS 11.0.1 在 vi​​ewDidLayoutSubviews 中崩溃

ios - 如何使用 Autolayout 确保干净地堆叠多个动态 UIView

ios - Firebase 嵌套规则

android - Titanium:当布局=垂直时隐藏 View

ios - TabBarController 和导航 Controller - Swift - 登录

ios - 点击标签栏滚动到 UITableViewController 的顶部并不总是有效

ios - 从 NSMutableDictionary 中移除对象