【问题标题】:Center UIButton and UILabel with Autolayout使用自动布局将 UIButton 和 UILabel 居中
【发布时间】:2023-03-15 17:20:01
【问题描述】:

我是 UIConstraints 的新手,我试图将 Auto Layout 的“继续按钮”和“不,谢谢”居中在 UICollectionView 和底部之间的空间中xib。我应该添加哪个UIConstraints

【问题讨论】:

  • 你考虑过UIStackView吗?
  • @PetahChristian 我第一次读到它。
  • @bruno 我强烈建议您考虑使用UIStackView 来布置您的视图。这是一个教程:如何做,我发现它很有帮助。 raywenderlich.com/114552/…。这是来自 WWDC 2015 的视频,也涵盖了它。在 5:15 秒左右是相关的部分--> developer.apple.com/videos/play/wwdc2015-218.
  • @PetahChristian 在实施了 4 个 UIStackView 后我完成了多个约束,谢谢 ;)
  • 不错!您应该将您的解决方案发布为您自己问题的答案,以便将来帮助其他人:)

标签: ios autolayout constraints


【解决方案1】:

这是我的实现

如图所示,我使用不同的组件实现了 3 个堆栈视图。为了使它们全部“一个”,我将它们放在 Stack 中,约束

【讨论】:

    【解决方案2】:

    如果不想使用绝对值,则需要多两个透明视图才能获得想要的布局。

    一个视图,应该添加到“继续”上方,它的上边距设置为collectionView,下边距设置为“继续”。 第二个视图应该放在“NoThanks”下,它的上边距设置为“NoThanks”,下边距设置为 superView 的底部。 通过添加与 superView 相等的左右边距,您可以让两个视图占据所有水平空间。

    在你设置了我上面提到的约束之后,你必须在两个额外的视图之间再添加一个相等的高度约束。这将确保“继续”上方和“不,谢谢”下方的空格始终相等。

    【讨论】:

    • 听起来有点乱
    • @bruno 这是自动布局没有优雅解决方案的原因之一
    • @bruno:这是一个不错的解决方案。
    • 这不再适用于 iOS 9。您现在可以使用 UILayoutGuide 代替间隔视图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2015-12-28
    • 2012-09-28
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多