将按钮中间放在手机屏幕底部(无论屏幕大小)

Posted

技术标签:

【中文标题】将按钮中间放在手机屏幕底部(无论屏幕大小)【英文标题】:Place middle of button at the bottom of phone screen (regardless of the screen size) 【发布时间】:2016-07-18 17:42:03 【问题描述】:

我想问如何设置一个约束,使按钮的中间位于屏幕底部以适应不同的 ios 屏幕尺寸?

这是最理想的情况,其中按钮的中间部分位于屏幕底部,而下半部分不显示在屏幕上:

使用下面的代码,这就是正在发生的事情,这不是我想要的:

我试过这个:

[qrScanner.bottomAnchor constraintEqualToAnchor:self.bottomLayoutGuide.topAnchor constant:100].active = YES;

但它只适用于 iPhone 6 屏幕,不适用于其他屏幕,例如 iPad Mini。

我想知道是否有任何方法可以推广这样的公式,以便无论屏幕大小如何,所有按钮的中心都很好地放置在屏幕底部?

请帮忙,我已经尝试了几天并到处搜索,但找不到任何线索。谢谢!

【问题讨论】:

你的意思是按钮中心吗? @TejaNandamuri 是的。表示按钮的中心位于屏幕底部,如下所示:i.stack.imgur.com/mBKRb.jpg,而不是现在发生的情况:i.stack.imgur.com/Yma8d.jpg 【参考方案1】:
[qrScanner.centerYAnchor constraintEqualToAnchor:self.bottomLayoutGuide.topAnchor constant:0].active = YES;

【讨论】:

【参考方案2】:

根据您的模型外观,我猜您的按钮没有固定大小,而是根据容器的大小而增长/缩小。因此,100 的偏移量仅在您的按钮的高度恰好为 200 时才有效。

我不确定您如何确定按钮的大小,但就定位而言,您希望将其 X 坐标居中,然后设置底部约束,使按钮的中心 Y val 等于容器的底部.以下是您需要为定位添加的 2 个约束:

// Center X value in the view
[NSLayoutConstraint constraintWithItem:button
                             attribute:NSLayoutAttributeCenterX
                             relatedBy:NSLayoutRelationEqual
                                toItem:self.view
                             attribute:NSLayoutAttributeCenterX
                            multiplier:1
                              constant:0];

// Center button's Y value to the bottom of the view
[NSLayoutConstraint constraintWithItem:button
                             attribute:NSLayoutAttributeCenterY
                             relatedBy:NSLayoutRelationEqual
                                toItem:self.view
                             attribute:NSLayoutAttributeBottom
                            multiplier:1
                              constant:0];

【讨论】:

【参考方案3】:

Swift 4.2

qrScanner.centerYAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

【讨论】:

centerYAnchor 和 bottomAnchor 的类型相同。两者都是 NSLayoutYAxisAnchor。所以你可以像这样使用它们。有关更多信息和完整示例,我在此链接***.com/a/54878823/9614722 中回复类似问题。

以上是关于将按钮中间放在手机屏幕底部(无论屏幕大小)的主要内容,如果未能解决你的问题,请参考以下文章

如何始终将 UIView 的底部与屏幕底部对齐

强制按钮停留在手机屏幕底部

如何使用自动布局将按钮放在屏幕底部

Bootstrap 4:无论屏幕大小,始终显示移动菜单按钮

如何将页面内容设置到屏幕中间? [复制]

使用LinearLayout将按钮放在屏幕底部?