web-dev-qa-db-fra.com

Contrainte "largeur égale hauteur" dans Interface Builder

Je ne trouve pas de moyen de créer une contrainte "carrée", ce qui signifie "largeur égale hauteur" dans Interface Builder. Je suppose qu'il est possible d'ajouter une telle contrainte par programme. Puis-je faire quelque chose dans IB? Peut-être que je ne le vois pas? Cela semble banal, mais je ne le trouve pas.

87
DemoniacDeath

Mise à jour Xcode 5.1b5

width equals height

Ctrl + clic et faites glisser depuis une vue et relâchez-le pendant que le pointeur se trouve sur la vue. Sélectionnez "Ratio d'aspect". Cela créera une contrainte où le premier et le deuxième élément sont la vue.


Avant Xcode 5.1

Vous ne pouvez pas parce que l'éditeur largeur/hauteur n'a pas les champs pour associer une autre propriété ou définir le ratio:

width constraint

Par conséquent, vous ne pouvez pas exprimer le code suivant dans Interface Builder:

CGFloat ratio = 1.0;
NSLayoutConstraint *constraint = [NSLayoutConstraint
    constraintWithItem:myView
    attribute:NSLayoutAttributeWidth
    relatedBy:NSLayoutRelationEqual
    toItem:myView
    attribute:NSLayoutAttributeHeight
    multiplier:ratio
    constant:0];
constraint.priority = 1000;
[myView.superview addConstraint:constraint];
177
Jano