ios – 如何根据XIB中的子视图大小调整超视图的高度?

ios – 如何根据XIB中的子视图大小调整超视图的高度?,第1张

概述在 xcode 6中,我为自定义视图创建了一个xib(命名为:ViewA,获得了RED背景颜色),ViewA的xib文件大小为600 * 600,在ViewA中,我放置了一个子视图labelB(获得了绿色背景色)在其中,labelB的numberOfLines = 0,所以labelB’高度是可变的,我希望ViewA的高度根据labelB的高度改变(例如ViewA.bottom = labelB. 在 xcode 6中,我为自定义视图创建了一个xib(命名为:VIEwA,获得了RED背景颜色),VIEwA的xib文件大小为600 * 600,在VIEwA中,我放置了一个子视图labelB(获得了绿色背景色)在其中,labelB的numberOflines = 0,所以labelB’高度是可变的,我希望VIEwA的高度根据labelB的高度改变(例如VIEwA.bottom = labelB.bottom 10),我已经将labelB的顶部,底部固定,尾随,导致VIEwA,但它仍然没有!工作,VIEwA的高度总是600,无论标签的高度是多少.如何在汽车布局中实现这一目标?谢谢解决方法 使用自动布局,您需要执行以下 *** 作:

>确保您没有为任何子视图添加固定宽度和/或高度约束(取决于您想要动态调整的尺寸).我们的想法是让每个子视图的内在内容大小决定子视图的高度. UILabels带有4个自动隐式约束,它们(小于所需优先级)尝试将标签的框架保持在适合所有文本所需的确切大小.
>确保每个标签的边缘严格连接(具有必需的优先级约束)到彼此的边缘及其超视图.你想确保如果你想象其中一个标签的大小增加,这将迫使其他标签为它腾出空间,最重要的是迫使supervIEw扩展.
>仅向超级视图添加约束以设置其位置,而不是大小(至少不是您想要动态调整大小的维度).请记住,如果正确设置内部约束,其大小将由所有子视图的大小决定,因为它的边缘以某种方式连接到它们的边缘.
>确保在应用任何约束之前将视图的translatesautoresizingMaskIntoConstraints属性值更改为NO.

而已.您不需要调用sizetoFit或systemLayoutSizefittingSize:来使其工作,只需加载您的视图并设置文本即可.系统布局引擎将为您进行计算以解决您的约束. (如果有的话,你可能需要在supervIEw上调用setNeedsLayout ……但这不应该是必需的.)

您可以查看原始答案here

总结

以上是内存溢出为你收集整理的ios – 如何根据XIB中的子视图大小调整超视图的高度?全部内容,希望文章能够帮你解决ios – 如何根据XIB中的子视图大小调整超视图的高度?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1107532.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存