iOS Vincoli al centro


Esempio

Seleziona il tuo pulsante (o qualsiasi altra vista che vuoi centrare) sullo storyboard . Quindi fare clic sul pulsante di allineamento in basso a destra. Selezionare Horizontally in Container e Vertically in Container . Fai clic su "Aggiungi 2 vincoli".

Allineamento - Metodo 1

Se non fosse già perfettamente centrato, potrebbe essere necessario fare ancora una cosa. Fai clic sul pulsante "Aggiorna frame" che si trova a due a sinistra del pulsante "Incorpora nello stack" nella barra inferiore. Aggiorna cornici

Puoi anche "aggiornare i fotogrammi se necessario" premendo insieme + + = (Comando + Opzione e uguale) dopo aver selezionato la vista, questo potrebbe far risparmiare un po 'di tempo.

Ora quando esegui la tua app dovrebbe essere centrata, indipendentemente dalla dimensione del dispositivo che stai utilizzando.

Un altro modo per centrare le viste usando Interface Builder è control-click-dragging. UILabel voler centrare un UILabel in una vista. Apri lo Document Outline del Document Outline nello storyboard facendo clic sul pulsante della barra laterale in basso a sinistra. Clicca e trascina dall'etichetta alla vista tenendo premuto ctrl (controllo), e dovrebbe apparire una linea blu:

linea blu

Al rilascio, apparirà un menu di opzioni di vincolo:

menu di opzioni di vincolo

Seleziona "Centra orizzontalmente nel contenitore" e "Centra verticalmente nel contenitore". Aggiorna i fotogrammi se necessario, e voilà! Un'etichetta centrata.

In alternativa, è possibile aggiungere i vincoli a livello di codice. Crea i vincoli e aggiungili agli elementi e alle viste dell'interfaccia utente desiderati come descritto nel seguente esempio, dove creiamo un pulsante e lo allineiamo al centro, in orizzontale e in verticale, alla sua superview:

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
}

veloce

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])
}