Pour cacher un sous-vue en UIStackView
est-il préférable de régler la isHidden
true ou d'utiliser removeArrangedSubview
et enlever la sous-vue du parent Stackview
à la place?Hiding la sous-vue dans UIStackview dans ios
J'utilise un Stackview pour organiser mes UIElements dans la cellule tableView. J'ai actuellement un parent StackView et un childStackview arrangé à l'intérieur. La vue enfant doit être affichée ou masquée en fonction d'une condition. Je définis la propriété isHidden
de la vue enfant sur true lorsque la condition devient vraie.
Lorsque je défile et que de nouvelles cellules deviennent visibles Je reçois les messages suivants dans la console. L'application ne plante pas.
NSLayoutConstraint: 0x600000093470 'UISV-toile connexion' UIStackView: 0x7fd4527201b0.top == UILabel:. 0x7fd452720370'Day Off - repos et de sommeil ... Top (actif)
Faire un point d'arrêt symbolique à UIViewAlertForUnsatisfiableConstraints pour attraper cela dans le débogueur. Les méthodes de la catégorie UIConstraintBasedLayoutDebugging sur UIView listées dans <UIKit/UIView.h>
peuvent également être utiles. [LayoutConstraints] Impossible de satisfaire simultanément les contraintes. Probablement au moins une des contraintes de la liste suivante est celle que vous ne voulez pas.
Essayez ceci:
- regard à chaque contrainte et essayer de comprendre que vous ne vous attendez pas;
- trouvez le code qui a ajouté la contrainte ou les contraintes non désirées et corrigez-le. ( "", "", "", "", "", "", "" )
tente de récupérer en brisant la contrainte
Comme la plupart des questions sur quelle approche est la meilleure, la réponse dépend de votre situation particulière. Pouvez-vous fournir quelques détails de plus? – Jim
Merci Jim, j'ai ajouté un ParentStackView et un ChildStackview l'un dans l'autre. J'ai besoin de cacher le childstackview basé sur une condition. Lorsque je mets le isHidden de la stackview enfant à true, je reçois le message suivant dans le journal de la console de xcode. Cependant, il ne plante pas l'application. Je reçois cette erreur Impossible de satisfaire simultanément les contraintes. Probablement au moins une des contraintes de la liste suivante est celle que vous ne voulez pas.\t Va tenter de récupérer en cassant la contrainte – jay
Jay, allez-y, éditez votre question et ajoutez-y les détails avant que les gens ne les déprécient pour ne pas avoir de détails. Supposons également que la vue de la pile enfant disparaisse (vous la masquez ou utilisez removeArrangedSubview). Voulez-vous que ça revienne? – Jim