J'ai un UIStackView imbriqué qui, lorsque j'appuie sur un bouton, est instancié. Pour aller plus en détail, j'ai un UIStackView qui itère à travers un NSMutableArrayList plein de CustomUIStackViews et les ajoute en tant que arrangedSubviews. Lorsque les CustomUIStackViews sont lancés, ils parcourent également leur propre NSMutableArrayList rempli de UIViews et les ajoute en tant que arrangedSubviews.Condition de course UIStackView?
La chose étrange est que, après toutes mes pour les boucles sont exécutées que j'ai un NSLog:
NSLog(@"parentstackview height is %f",_parentStackView.frame.size.height);
qui retourne un 0 (ce qui ne doit pas, la hauteur doit être 1861 après tout le spectacle stackviews jusqu'à, qu'ils font visiblement dans le simulateur).
Mais si je crée cette méthode:
- (void)testMethod{
NSLog(@"parentstackview height is %f",_parentStackView.frame.size.height);
}
et remise en place NSLog d'avant avec ceci:
[self performSelector:@selector(testMethod) withObject:nil afterDelay:1.0];
Ensuite, il retourne 1861 exactement comme il se doit, après le délai de 1 seconde. Pourquoi le retard d'une seconde fait-il une différence?