NSGenericException', la raison: "Impossible d'installer contrainte sur la vue
Résiliation d'application en raison de uncaught exception 'NSGenericException'
Résiliation d'application en raison de uncaught exception 'NSGenericException', la raison: "Impossible d'installer contrainte sur la vue. La contrainte
référence à quelque chose de l'extérieur de la sous-arborescence de la vue? C'est
illégale. contrainte:
vue:; couche = ; contentOffset: {0, 0}>'
- mettre le code ici pour plus d'undersatnding
- dans lequel la version de l'OS que vous obtenez cette erreur
- Je soupçonne que vous aurez besoin de revenir sur votre question, et/ou de poster votre code pour obtenir plus de réponses utiles.
Vous devez vous connecter pour publier un commentaire.
Vous devez installer la contrainte sur le "plus" de deux points de vue. En règle générale, le moyen de le faire c'est comme cela:
Juste un mot d'avertissement: Il est bon de rappeler ici que la contrainte attributs sont évaluées dans le contexte de la vue sur laquelle ils sont ajoutés. Ainsi, par exemple, la valeur de NSLayoutAttributeLeft de viewA, pour une contrainte installé sur viewB, est interprété dans l'espace de coordonnées de viewB. Pour les contraintes que la seule référence, de frère, de points de vue ou leurs superview, ce fait est largement hors de propos, mais il n'y a pas de restriction que les contraintes ne peut pas référence à deux points de vue qui ne sont pas des frères et sœurs ou parents directs.
ancestorSharedWithView
définie uniquement pour les mac et pas iOS? Je vois qu'il est défini dans le AppKit.cadre de la bibliothèque qui n'appartient qu'à mac OSX10.8[secondView isDescendantOfView: x]
. Mais le concept est le même - vous toujours envie d'installer une contrainte sur un ancêtre commun de tous les points de vue impliqués, et que la contrainte sera résolu dans l'espace de coordonnées de la vue, il est installé.Similaire à neoneye j'étais-ce dû à la suppression des sous-vues avec des contraintes. Cependant, j'ai eu une contrainte qui a été le positionnement de la vue parent, et ce fut supprimée si j'ai appelé
[self.view removeConstraints:self.view.constraints];
au Lieu de cela j'ai fait ce changement,Code Original:
Fixe de supprimer les contraintes sur les sous-vues:
Mise à JOUR: Alors j'ai frappé à nouveau cette erreur, et c'est en raison de la suppression d'une vue unique à cette époque. Ajout d'une fonction pour supprimer le point de vue proprement:
J'ai vécu cette erreur sur iOS6. Dans mon cas, c'était parce que j'ai commencé à supprimer des sous-vues sans d'abord la suppression des contraintes.
J'ai eu ce problème à l'aide d'un UIPickerView comme les entrées d'un UITextField (en utilisant la mise en page automatique). Quand j'ai pousser un autre viewController et donc une pop à la viewController avec le sélecteur, l'application se bloque. J'ai trouvé la solution suivante, dans le UIPickerViewController:
Vous pouvez également définir la UIPickerViewPosition après le retrait de superview. J'espère que peut vous aider!
UIDatePicker
commeTextField
'sinputAccessoryView
. Je pousse un view controller et de revenir et elle lève une exception. J'ai essayé ton code mais il ne fonctionne pas pour moi. Veuillez noter que j'aiUIDatePicker
dans le storyboard (pas de création à l'aide de code).J'ai trouvé ajouter cette ligne de code résolu ce problème pour un cacao ScrollView.
Je pense que certains points de vue d'ajouter des contraintes au moment de l'exécution, par conséquent, en conflit lorsque vous ajoutez votre propre via objective-c, vous devez désactiver ce comportement...
Même erreur, la solution ici:
J'ai eu cette erreur sur le démarrage de mon application sur iOS 6 après l'ajout d'un nouveau point de vue et d'oublier d'éteindre
Use Auto Layout
dans interface builder ... je le déteste il n'y a pas de normes pour PAS utilisation automatique de la mise en page par défaut pour les nouveaux points de vue ...J'ai eu le même incident, et il s'est avéré être un virgule flottante de précision problème avec contrainte multiplicateur. J'ai converti tous mes contrainte multiplicateurs à de belles valeurs à virgule flottante (par exemple, de 0,375 au lieu de 0,35) et qui fixe le crash.
Mise en page automatique: removeFromSuperview /removeConstraints throws exception et se bloque dur