【问题标题】:Center Label vertically between two UIButton's在两个 UIButton 之间垂直居中标签
【发布时间】:2020-12-30 00:28:36
【问题描述】:
每个人都有一些麻烦,我在使用苹果登录按钮和登录按钮之间垂直居中或标签。请记住,我正在以编程方式创建 SIWA 按钮并以这种方式设置约束。我尝试获取两个按钮的原点 y 坐标,将它们除以 2,然后将登录按钮的垂直约束设置为或标签为 (loginButton.frame.origin.y - (除以 2 值)),但是似乎不起作用。谢谢你的帮助。
【问题讨论】:
标签:
swift
autolayout
uikit
【解决方案1】:
有几种方法可以解决这个问题:
-
将 2 个按钮和标签放在垂直 UIStackview 中,分布设置为等间距。 Stackview 也非常灵活,尤其是在更复杂的布局中。
-
创建一个位于两个按钮之间的空 UIView,然后将标签添加为子视图并将其居中。或者,您可以在标签上方和下方创建 2 个具有相等高度约束的间隔视图:
V:|[Button][space][Label][spacer2(==spacer1)][Button2]|
【解决方案2】:
非常简单的方法:默认情况下,UILabel 在其框架中垂直居中其文本。
所以,
- 将标签的顶部约束到顶部按钮的底部
- 将标签底部约束到底部按钮的顶部
全部完成:)