【问题标题】:How to layout a UILabel and a UIButton and center them?如何布局 UILabel 和 UIButton 并使它们居中?
【发布时间】:2016-10-22 19:05:56
【问题描述】:

我想在按钮旁边放置一个标签,如下所示:

[--[UILabel]-[UIButton]--]

考虑到 UILabel 和 UIButton 具有动态文本长度,我希望它们在其父视图中居中。

如何使用 AutoLayout 或 UIStackViews 做到这一点?

谢谢,

【问题讨论】:

    标签: ios autolayout uistackview


    【解决方案1】:

    如何将其封装在一个视图中并将该视图居中以超级视图? 比如:

    主视图[集中视图[Label-Button]]

    【讨论】:

      【解决方案2】:

      将标签和按钮都对齐到超级视图。如果您使用故事板或 XIB 文件,请选择标签的 Horizontally Centered Constraint 并在 Size Inspector(在 Xcode 的右列,第 5 项)中选择 Label.Trailing 而不是 Label.X。并给它一个值(或零,随便你。这将是标签和视图中心之间的常数)。

      设置它们后,Size Inspector 中的标签 Center X Alignment Constraint 应如下所示:

      对按钮执行相同的操作。但是这一次,选择Button.Leading 而不是Button.X 并给它一个常数。 设置它们之后,Size Inspector 中的 Button 的 Leading Alignment Constraint 应该如下所示:

      通过这种解决方案,Label 和 Button 将相互独立。您可以独立决定它们的其他属性。

      您的结果应如下所示:

      【讨论】:

        【解决方案3】:

        将标签和按钮放在 StackView 中,并将该 StackView 的约束(水平居中,垂直居中)赋予超级视图

        【讨论】:

          【解决方案4】:

          使用自动布局。根据您的具体情况进行调整:

          1. 按照指示将标签和按钮放置在视图的中心
          2. 锁定前导、尾随和顶部约束。 (不要限制底部或高度)
          3. 将标签和按钮限制为等宽。
          4. 将标签设置为 0 行。
          5. 将按钮设置为自动换行。
          6. 享受吧。

          【讨论】:

          • 不发表评论就投反对票并不能帮助任何人学习。我自己、OP 或任何将来可能会读到这篇文章的人。据我所知,这可以以最小的努力回答这个问题,并且我证明它可以在模拟器中工作。
          猜你喜欢
          • 2023-03-15
          • 1970-01-01
          • 2017-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-28
          • 2012-09-28
          相关资源
          最近更新 更多