使用自动布局将 UIButton 和 UILabel 居中
Posted
技术标签:
【中文标题】使用自动布局将 UIButton 和 UILabel 居中【英文标题】:Center UIButton and UILabel with Autolayout 【发布时间】:2016-02-01 16:27:46 【问题描述】:我是 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 后我完成了多个约束,谢谢 ;)
不错!您应该将您的解决方案发布为您自己问题的答案,以便将来帮助其他人:)
【参考方案1】:
这是我的实现
如图所示,我使用不同的组件实现了 3 个堆栈视图。为了使它们全部“一个”,我将它们放在 Stack 中,约束
【讨论】:
【参考方案2】:如果不想使用绝对值,则需要多两个透明视图才能获得想要的布局。
一个视图,应该添加到“继续”上方,它的上边距设置为collectionView
,下边距设置为“继续”。
第二个视图应该放在“NoThanks”下,它的上边距设置为“NoThanks”,下边距设置为 superView 的底部。
通过添加与 superView 相等的左右边距,您可以让两个视图占据所有水平空间。
在你设置了我上面提到的约束之后,你必须在两个额外的视图之间再添加一个相等的高度约束。这将确保“继续”上方和“不,谢谢”下方的空格始终相等。
【讨论】:
听起来有点乱 @bruno 这是自动布局没有优雅解决方案的原因之一 @bruno:这是一个不错的解决方案。 这不再适用于 ios 9。您现在可以使用UILayoutGuide
代替间隔视图。以上是关于使用自动布局将 UIButton 和 UILabel 居中的主要内容,如果未能解决你的问题,请参考以下文章
使用自动布局时何时将 imageView 添加到 UIButton
尝试使用自动布局将 UIButton 添加到我的视图中,但它没有出现。为啥? [关闭]