如何在屏幕下半部分的中心放置一个按钮

How to place a button at the center of the bottom half of the screen

我想创建一个 UIViewController 应该分成两个相等的(宽度和高度)部分。

最上面的应该包含 UIView。底部应包含此部分中水平和垂直居中的按钮:

我通过将 UIView 对象的前导、尾随和垂直 space 设置为超级视图 0 将其放置在正确的位置。我通过为这个 UIView 及其超级视图设置 equal heights 并给它 2:1 乘数使其成为 0.5 倍屏幕大小,其中第一个值与超级视图相关,第二个值与指定的 UIView.

但是如何将按钮放在屏幕下半部分的中央?

I'm using auto-layouts and size classes.

您可以使用对齐约束,例如在容器中水平对齐和在容器中垂直对齐。希望这有帮助。

假设您的按钮超级视图直接是您的 viewController:

- (void) viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    myButton = CGPointMake(myButton.superview.center.x, myButton.superview.frame.size.height * 3 / 4);
}

我建议您使用 2 个 UIView 而不是 1 个,即顶视图和底视图。

  • 将两个UIViews的所有边固定为0,使高度相等。
  • 比第二个 UIView 即底部视图将按钮设置为该视图的中心,并为按钮提供 中心 X 和中心 Y 约束以及高度和宽度

这些是您需要执行的步骤。 1. 选择您的 UIView,转到尺寸检查器。 X 和 Y 应等于 0。例如,宽度应为 600,高度应为 300。因此整个屏幕为 600 x 600。 2. Select 尺寸检查器仍处于选中状态的按钮。观察宽度和高度值。意识到 X 和 Y 是从按钮的左上角开始测量的。现在用整个屏幕的宽度减去按钮宽度的一半,也用屏幕的一半高度减去按钮高度的一半。将这些值输入到按钮位置的 x 和 y 值中。

即如果按钮是 50X100(宽高)你需要在 x= 300-50/2= 和 y= 450 -100/2=400

button.centerX = view.centerX
button.centerY = view.centerY*1.5

会给你想要的。您应该根据需要添加按钮的宽度和高度约束。

Swift 5SnapKit

        customView.snp.makeConstraints { (m) in
            m.centerX.equalToSuperview()
            m.centerY.equalToSuperview().multipliedBy(1.5)
        }