Comment puis-je déclencher une mise à jour de toutes les contraintes d'autolayout?
J'ai modifié par programmation une mise en page automatique de contrainte. Elle prend effet à un certain point de vue, mais d'autres points de vue qui sont liés avec d'autres contraintes de ce point de vue, ne pas changer leurs positions. Est-il une "updateAllConstraints" méthode?
source d'informationauteur János
Vous devez vous connecter pour publier un commentaire.
Appel de ces deux méthodes sur la vue que vous voulez être mis à jour à:
Le premier dit au système de mise en page que ce point de vue doit être jeté, car il a peu de changements et, tout doit être recalculé. La deuxième force le système de mise en page à exécuter, le système de mise en page est déclenchée à des moments précis au cours de l'exécution, avec cette méthode, vous dites:"c'est maintenant".
Oui, Il y a une méthode sur UIView appelé
- (void)updateConstraintsIfNeeded
https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/updateConstraintsIfNeeded
Cependant, je ne pense pas que c'est votre problème
Le problème était que les contraintes n'ont pas été mis en place correctement, et dans ce cas, non de la setNeedsLayout ou updateConstraintsIfNeeded peut vous aider.
Meilleur que j'ai trouvé est:
Sélectionnez les éléments que vous voulez "pop" de retour à vos contraintes
Menu du haut: Rédaction/mise à Jour de Cadres (ou/) raccourci: commande + option + =
Espérons que cette aide