【问题标题】:iOS Layout Constraints | Width anchor vs leading and trailing anchorsiOS 布局约束 |宽度锚与前导和尾随锚
【发布时间】:2021-07-19 05:36:26
【问题描述】:

我已经很久没有使用 AutoLayout 约束了,所以我还没有完全掌握它的一些内部工作原理。

特别是,有时我可以交替使用widthAnchorleading trailing 锚点,而其他我需要全部三个锚点?或者,将widthAnchorleadingAnchor 一起使用是否有效 trailingAnchor

总结一下我的问题,leadingtrailing 锚的组合是否只是定义视图的宽度和 X 轴位置,就像 widthAnchorleadingAnchor 一样?

【问题讨论】:

    标签: ios autolayout


    【解决方案1】:

    基本上,对于具有固有大小的视图,自动布局至少需要两个约束,对于没有固有大小的视图,至少需要四个约束。假设您的视图具有固有大小(例如 UITextView),它足以约束 x 轴和 y 轴。如果您愿意,您可以根据屏幕尺寸指定使用宽度锚点和高度锚点的固定尺寸或使用限制顶部、底部、前导、尾随锚点的动态尺寸,但这只是可选的。如果您的视图没有固有的内容大小(例如 UIImageView),您需要指定至少一个 x 轴、一个 y 轴以及宽度和高度锚或约束前导、尾随、顶部和底部锚。关键是如果你有前导和尾随锚,你不需要指定宽度锚,反之亦然。现在,你明白了。如果约束顶部和底部锚点,则不应添加高度锚点以避免冲突。

    【讨论】:

    • 如果我在视图中说一个标签,并且我希望标签和视图都根据标签的文本动态增长怎么办?我只需要为标签设置前导、尾随、顶部和底部锚点?
    • 由于 UIView 没有固有的内容大小,它可能需要一些调整。您首先需要将视图约束到您可以允许的最大宽度和高度锚点,并将标签的顶部、前导、尾随和底部锚点设置为该视图。这样,标签会动态增长,直到达到视图的宽度和高度。
    • 另一种可能的方法是先设置标签的前导和顶部锚或尾随和底部锚,然后将视图的宽度、高度、前导和顶部锚设置为等于标签。
    猜你喜欢
    • 2015-04-02
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    相关资源
    最近更新 更多