J'ai rencontré le problème après la mise à jour vers Xcode 8. Chaque fois que des objets de l'interface utilisateur sont supprimés du storyboard principal, l'avertissement suivant s'affiche:
Éléments de référencement de contraintes désactivés dans la configuration actuelle. Désactivez cette contrainte dans la configuration actuelle.
Il semble que ce soit un bogue Xcode, mais je souhaite malgré tout supprimer ces avertissements du projet. J'ai trouvé qu'il y avait le même problème avec Xcode 6 ici mais aucune réponse de cette question ne résout le problème correctement non. Ainsi, lorsque je trouve la contrainte incorrecte dans le storyboard et que je la supprime, le nombre de contraintes incorrectes augmente au lieu de diminuer. J'ai des choses que j'ai aussi essayées:
Des idées?
J'avais plusieurs vues qui n'étaient pas Installed
, après la mise à jour vers xcode 8.1, j'ai eu 2 avertissements.
Les étapes suivantes ont fonctionné pour moi:
1) Nettoyez le projet et redémarrez Xcode, les avertissements ont été réduits à 1.
2) La sélection de l’avertissement indiquera exactement quelle contrainte pose un problème. Ouvrez Attributes Inspector
et sélectionnez les vues où la contrainte est appliquée, recherchez Installed
si sa case n'est pas cochée dans la vue (pas sur la contrainte). Vous pouvez soit sélectionner Installé dans la vue, soit désélectionner Installé sur contrainte elle-même.
Voir la capture d'écran ci-dessous. Installed
n'a pas été coché à l'affichage, pas à la contrainte indiquée par l'avertissement :)
Mise à jour: Même problème avec un autre ViewController, un UIView n’était pas installé pour une classe de taille, je désélectionne Installé sur contrainte elle-même et avertissement est parti aussi, je suppose que ce n’est pas un bogue Xcode, il prétend activer/désactiver Installé sur les deux UIView et Constrarint
Affichez le Report Navigator
[C'est l'onglet le plus à droite dans la colonne la plus à gauche]. Cela montrera le journal de construction avec les identifiants de contrainte. Pour plus de détails, examinez ce message de stackoverflow .
Raison
Vous avez un élément (c'est-à-dire une vue) qui n'est pas installé, mais il a des contraintes qui sont toujours installées. (commenté par fattie )
Comment trouver la contrainte spécifique
Il est difficile de trouver contrainte exacte qui provoque cet avertissement. Il expliquait, étape par étape, dans la réponse de BastiBen comment trouver la contrainte spécifique.
Solution
Conseils pour l'avenir
Vous pouvez également trouver la vue ou la contrainte en consultant la balise dans la source du storyboard.
J'avais une vue que j'avais désinstallée et l'avertissement est apparu. Après avoir réinstallé la vue, l’avertissement ne s’est pas éloigné, même après un nettoyage. Mais après le redémarrage de Xcode, l'avertissement a disparu.
Pour résoudre ce problème, il existe plusieurs options:
D'abord, qu'est-ce qui cause le problème? Désinstaller une vue sans désinstaller ses contraintes.
Deuxièmement pourquoi voudriez-vous cela? Vous voudrez peut-être qu'une vue reste dans votre contrôleur de vue parce que vous l'avez construite, puis que les spécifications ont été modifiées afin que vous souhaitiez la supprimer temporairement, car cette partie n'était peut-être pas incluse dans votre sprint actuel
Dernier comment on le résout?
Il y a trois options:
Si vous pouvez simplement réinstaller la vue
Si vous voulez garder la vue
Si vous pouvez simplement supprimer la vue désinstallée en même temps
Option 1
Si vous pouvez simplement réinstaller la vue:
Réinstallez la vue en basculant l'option installée comme indiqué dans la photo 2 sur n'importe quelle vue estompée comme dans la photo 1
Essayez de nettoyer le projet (Commande + Maj + K) - si cela ne fonctionne pas, essayez de redémarrer xCode. Si cela ne fonctionne pas, vous avez peut-être oublié une vue désinstallée quelque part.
Option 2
Si vous souhaitez conserver la vue:
La contrainte sera maintenant également estompée (pas le groupe de contraintes), comme indiqué dans la première image.
Option 3
Si vous pouvez simplement supprimer la vue désinstallée en même temps
Supprimer les vues désinstallées qui suppriment automatiquement leurs contraintes
Nettoyez le projet (Commande + Maj + K). Si cela ne fonctionne pas, essayez de redémarrer xCode.
La solution consistait simplement à supprimer les vues désinstallées. Aussi simple que cela.