Je ne trouve pas de moyen de créer une contrainte «carré», 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 à IB? Peut-être que je ne le vois tout simplement pas? Cela semble trivial, mais je ne le trouve pas.
ios
interface-builder
autolayout
nslayoutconstraint
DémoniaqueMort
la source
la source
Réponses:
Mettre à jour Xcode 5.1b5
Ctrl + clic et glisser depuis une vue et relâcher pendant que le pointeur est sur la vue. Sélectionnez "Rapport hauteur / largeur". 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 car l'éditeur largeur / hauteur n'a pas les champs pour se rapporter à une autre propriété ou définir le rapport:
Par conséquent, vous ne pouvez pas exprimer le code suivant dans Interface Builder:
la source
Veuillez ajouter une nouvelle contrainte, ratio d'aspect à 1: 1 sur l'élément d'interface utilisateur comme dans l'image.
la source
Pour commencer, contrôlez le glissement en diagonale du bouton vers lui-même. Un menu contextuel apparaîtra, dans lequel vous pouvez ajouter des contraintes de largeur et de hauteur. Shift + Click sur chacun; une coche apparaîtra pour indiquer que vous avez ajouté la contrainte. (Si vous fermez accidentellement la boîte de dialogue avant d'ajouter les deux, c'est OK, répétez simplement l'étape de glissement et définissez l'autre):
Lorsqu'elles sont ajoutées pour la première fois, ces contraintes prennent la largeur et la hauteur actuelles du bouton, vous devrez donc ajuster chaque contrainte pour lui donner une valeur plus appropriée. Nous devrons le faire une par une, bien que notre image soit carrée, assurez-vous donc d'utiliser la même valeur constante dans les deux contraintes pour redimensionner le bouton proportionnellement. Double-cliquez sur la contrainte et entrez une valeur plus petite dans son champ constant:
la source