首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态高度标签和文本字段

动态高度标签和文本字段
EN

Stack Overflow用户
提问于 2017-07-17 09:42:45
回答 1查看 302关注 0票数 1

在下面的图片中,他们有这些约束:

我对约束4-7是如何工作的感到困惑。该方法声称它在运行时根据最高的控件(高度)动态设置控件(名称、标签和名称文本视图)的垂直间距。因此,如果标签的固有高度为48 (由于增加了字体),则文本视图的高度也将以某种方式与名称标签的高度相匹配。我在代码中看不到这种关系,比如:nameTextView.height = nameLabel.height + 0

同样在约束4中,它说它可以是>=,但在约束5中,它说它必须等于(优先级较低)。系统如何决定在什么时间使用哪个约束?

来源:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/ViewswithIntrinsicContentSize.html#//apple_ref/doc/uid/TP40010853-CH13-SW16

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 10:00:20

约束5和7用于定义接口的默认值,因为约束4和6是不等式,并接受多种可能性。

在这个例子中,他们从来没有说过nameTextViewnameLabel必须是相同的高度。这四个约束实际上照顾到了它们不同的高度。

下面是它们的工作原理:

约束4和6分别定义了从nameLabelnameTextView的距离(注意这个术语)可以等于或大于20。因此,如果只设置这两个,那么如果它们实际上大于或等于,Xcode就会丢失,这就是为什么你需要有低优先级约束(5和7),它们给Xcode提供了指导,在低优先级时,它们都将从20“开始”,然后程序通过检查谁更高(因为4和6允许20或更高)来尝试满足4和6:nameLabelnameTextView。如果nameLabel更高,则通过将其垂直距离设置为20来满足约束4,并通过将nameTextView到顶部的垂直距离设置为大于20 (通过高度之差自动计算)来满足约束6。现在,一切都满足了,自动布局将会成功!

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45134920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档