代码之家  ›  专栏  ›  技术社区  ›  Adalex3

在Xcode接口生成器中创建动态调整大小的uilabel

  •  0
  • Adalex3  · 技术社区  · 7 年前

    我希望能够创建一个uilabel,它将以比普通自动布局更复杂的方式调整大小。我在网上查过这个问题的答案,但没有用。

    这就是我想要它做的。

    假设你在iPhone上观看。我希望它是从中间的任何一个以边缘为中心的16分。(高度不重要)

    但是,当屏幕变宽时,我希望uilabel可以拉伸,使其从每个边缘向外16点,直到达到,比如说,500宽。一旦它达到500宽,我就不想再宽了。这就是每边16个点增加的地方,仍然保持标签在中间。

    现在你可以在iPad上观看了。uilabel正好有500点宽,在中间。

    如果可能的话,我希望能够使用自动布局来完成这个任务,而不是使用代码,但是如果必须使用代码,我可以处理这个问题。

    1 回复  |  直到 7 年前
        1
  •  1
  •   vacawama    7 年前

    您可以使用3个约束进行此操作:

    1. 在视图中使标签水平居中
    2. 将宽度约束设置为<=500
    3. 将前导空格限制设置为16。优先考虑1000。

    当视图较宽时(如iPad上),标签将伸展至 500 . 自动布局 将保持标签居中,并将尽最大努力满足第三个约束,使前导空格尽可能靠近 16 尽可能。它选择打破这个约束,因为优先级小于 1000 .

    当视图较窄时(如iPhone),标签将有一个前导空格 十六 (和尾随空格 十六 因为标签居中)。宽度将是剩余的,因为它满足 width <= 500 约束。