Looking for ios Answers? Try Ask4KnowledgeBase
Looking for ios Keywords? Try Ask4Keywords

iOS Contraintes Centrales


Exemple

Sélectionnez votre bouton (ou la vue que vous souhaitez centrer) sur le storyboard . Cliquez ensuite sur le bouton d'alignement en bas à droite. Sélectionnez Horizontally in Container et Vertically in Container . Cliquez sur "Ajouter 2 contraintes".

Alignement - Méthode 1

Si cela n'était pas déjà parfaitement centré, vous devrez peut-être faire encore une chose. Cliquez sur le bouton "Mettre à jour les cadres" qui se trouve à gauche du bouton "Embed In Stack" sur la barre inférieure. Mettre à jour les cadres

Vous pouvez également "mettre à jour les images si nécessaire" en appuyant simultanément sur + + = (Commande + Option et égale) après avoir sélectionné la vue, cela pourrait vous faire gagner du temps.

Maintenant, lorsque vous exécutez votre application, elle doit être centrée, quelle que soit la taille de votre appareil.

Un autre moyen de centrer les vues à l'aide d'Interface Builder consiste à effectuer un glisser-déposer par contrôle. Supposons que vous souhaitiez centrer un UILabel dans une vue. Ouvrez la Document Outline du Document Outline dans votre storyboard en cliquant sur le bouton de la barre latérale en bas à gauche. Cliquez et faites glisser depuis l'étiquette vers la vue tout en maintenant la touche ctrl (contrôle) enfoncée , et une ligne bleue doit apparaître:

Ligne bleue

A la sortie, un menu d'options de contrainte apparaîtra:

menu d'options de contrainte

Sélectionnez "Centrer horizontalement dans le conteneur" et "Centrer verticalement dans le conteneur". Mettez à jour les cadres si nécessaire, et le tour est joué! Une étiquette centrée

Vous pouvez également ajouter les contraintes par programmation. Créez les contraintes et ajoutez-les aux éléments d'interface utilisateur et aux vues souhaités, comme le décrit l'exemple suivant, où nous créons un bouton et l'alignons au centre, horizontalement et verticalement sur sa vue d'ensemble:

Objectif 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
}

Rapide

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