中心约束

故事板上选择你的按钮(或你想要居中的任何视图)。然后单击右下角的对齐按钮。选择 Horizontally in ContainerVertically in Container。单击“添加 2 个约束”。

StackOverflow 文档

如果它没有完全居中,你可能需要再做一件事。单击底部栏上嵌入堆栈按钮左侧的更新框架按钮。 StackOverflow 文档

你还可以在选择视图后通过按 ⌘ + ⌥ + = (Command + Option 和 equals) 按更新帧 ,这可能会节省一些时间。

现在,当你运行应用程序时,无论你使用何种设备大小,它都应居中。

使用 Interface Builder 集中视图的另一种方法是通过控制点击拖动。假设你想在一个视图中居中一个 UILabel。单击左下方的侧栏按钮打开故事板中的 Document Outline。在按住 ctrl (控制)的同时单击并从标签拖动到视图,应出现蓝线:

StackOverflow 文档

发布后,将出现一个约束选项菜单:

StackOverflow 文档

选择在容器中水平居中在容器中垂直居中。根据需要更新帧,瞧! 一个居中的标签。

或者,你可以以编程方式添加约束。创建约束并将它们添加到所需的 UI 元素和视图,如以下示例所述,我们在其中创建一个按钮并将其在中心,水平和垂直对齐到其超级视图:

Objective-C

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *yourButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 18)];
    [yourButton setTitle:@"Button" forState:UIControlStateNormal];

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:yourButton attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]]; //Align veritcally center to superView

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:yourButton attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]]; //Align horizontally center to superView

    [self.view addSubview:yourButton]; //Add button to superView
}

迅速

override func viewDidLoad() 
{
    super.viewDidLoad()
    let yourButton: UIButton = UIButton(frame: CGRect(x: 0, y: 0, width: 100, height: 18))
    yourButton.setTitle("Button", forState: .Normal)

    let centerVertically = NSLayoutConstraint(item: yourButton,
                                   attribute: .CenterX,
                                   relatedBy: .Equal,
                                      toItem: view,
                                   attribute: .CenterX,
                                  multiplier: 1.0,
                                    constant: 0.0)
    let centerHorizontally = NSLayoutConstraint(item: yourButton,
                                   attribute: .CenterY,
                                   relatedBy: .Equal,
                                      toItem: view,
                                   attribute: .CenterY,
                                  multiplier: 1.0,
                                    constant: 0.0)
    NSLayoutConstraint.activateConstraints([centerVertically, centerHorizontally])
}