J'avais l'habitude d'utiliser la mise en page automatique pour ajouter de nouvelles contraintes pour créer des contraintes simples pour la vue d'ensemble / relative comme celle-ci (pendant longtemps):
Cependant, récemment après avoir mis à jour le dernier xcode (11.3.3 ou seulement 11.3 / 11C29), j'ai ce problème étrange: lorsque je définit la constante = 0, ils génèrent toujours les contraintes de manière indésirable comme ceci:
Et il semble que la valeur par défaut soit en quelque sorte de 20 et que ma vue soit si fausse (0 par rapport à 20?)
Si je corrige cela en modifiant la contrainte comme ceci:
Ensuite, il corrigera à nouveau (l'image est après avoir édité les contraintes, avant d'être éditée, elle affiche constante = Standard
)
Je ne sais même pas comment décrire le problème, mais comment puis-je corriger ce nouveau add new constraint
pour utiliser mon point de désir au lieu de standard / par défaut?
Mise à jour:
Cela semble ne se produire que lorsque la contrainte de superview. Je ne sais pas comment y remédier.
Mise à jour du 1er avril 2020:
Xcode11.4 a corrigé ce problème.
standard
valeur (afin que nous puissions définir 10 ou 0 au lieu dedefault = 8
) mais j'ai oublié où il se trouve maintenant. Ou peut-être ont-ils supprimé la fonctionnalité?Réponses:
Cela ressemble à un bug (n'oubliez pas de déposer avec Apple). Voici une solution simple:
Lorsque vous remplissez le nombre dans le "popover", au lieu de taper
0
, tapez0.01
. Cela empêchera le nombre de passer mystérieusement à "Standard". D'accord, ce0.01
n'est pas la même chose0
mais c'est assez proche pour que vous ne puissiez pas faire la différence, et au moins vous n'avez pas besoin de revenir en arrière et de la changer plus tard.EDIT Apple dit que ce bug sera corrigé dans Xcode 11.4:
la source
Pendant que la solution de contournement de @matt fonctionne, je veux juste ajouter que vous pouvez la définir sur 0,01, puis la modifier sur 0, elle ne changera plus à la valeur standard. Remarque: Xcode 11.3
la source
Depuis Xcode 11.3.1:
La solution la plus soignée et la plus rapide que j'ai trouvée est la suivante:
Tapez simplement
-0
dans le champ de contrainte. Xcode semble rejeter le négatif et il se comporte correctement, ce qui est mieux que de lire0.01
pour tout.Vous pouvez insérer toutes les contraintes à la fois, sans avoir à en faire une à la fois ou à modifier ultérieurement.
Xcode affiche les valeurs comme ceci
Cela semble être un comportement vraiment stupide. Y a-t-il une raison pour laquelle Apple aurait pu le faire délibérément ...?
Edit: Cela ne semble pas fonctionner à chaque fois , ce qui est frustrant. Je viens d'avoir un UIImageView show 0 to Superview, mais toujours visuellement à la valeur par défaut (20). Cela semble vraiment être un bug avec l'IB car le comportement est totalement illogique.
la source
Ce comportement semble être corrigé sur Xcode 11.4: notes de version
Réponse originale:
Je viens de trouver ce comportement aussi, j'ai essayé d'ajouter les contraintes 1 par 1 et Xcode a en fait respecté la valeur 0.
Mes deux centimes.
la source
Je sais que ce n'est pas une solution, mais pour une solution temporaire pour vous empêcher de passer par toutes les contraintes, je viens de découvrir que vous obtenez le comportement souhaité si vous insérez «-0» au lieu de «0», mais vous devez en insérer une contrainte à chaque fois.
la source
Il n'y a en fait aucun moyen de résoudre ce problème en attendant
mais la meilleure solution temporaire est d'ajouter les contraintes à zéro une par une.
la source
ignorer cela quand standard.
après l'avoir ajouté, cliquez sur contrainte (ligne bleue) et inspecteur pour contraindre l'attribut et définissez-le sur 0.
ça marche pour moi
la source
Je rencontre toujours ce bogue (Xcode 11.3.1). Corrigé en ajoutant simplement les contraintes comme "standard", puis en cliquant sur les lignes de contrainte bleues et en définissant la "constante" sous l'inspecteur de taille à 0.
la source