中心約束

故事板上選擇你的按鈕(或你想要居中的任何檢視)。然後單擊右下角的對齊按鈕。選擇 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])
}