Depuis Xcode 8 et iOS10, les vues ne sont pas dimensionnées correctement sur viewDidLayoutSubviews

Il semble qu'avec Xcode 8, sur viewDidLoad, tous les viewcontroller des sous-vues ont la même taille de 1000x1000. Chose étrange, mais bon, viewDidLoad n'a jamais été le meilleur endroit pour dimensionner correctement les points de vue.

Mais viewDidLayoutSubviews est!

Et sur mon projet actuel, j'essaie d'imprimer, de la taille d'un bouton:

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    NSLog(@"%@", self.myButton);
}

Le journal affiche une taille de (1000x1000) pour myButton! Alors si je me connecte sur un bouton, cliquez, par exemple, le journal affiche une taille normale.

Je suis avec mise en page automatique.

Est-ce un bug?

  • Ayant le même problème avec UIImageView - quand j'ai l'impression-je obtenir une image bizarre = (0 0; 1000 1000);. Je suis à l'intérieur d'un UITableViewCell, et une fois que j'actualise la tableview le cadre est ce que j'attends d'être (aussi lorsque la cellule est en dehors de la fenêtre d'affichage et revenir à nouveau). Quelqu'un a une idée pourquoi ce qui se passe (bizarre d'image par défaut) ?
  • Je pense que le (0, 0, 1000, 1000) lié d'initialisation est la nouvelle façon de Xcode instanciant des vues de l'IB. Avant Xcode8, des vues ont été créés avec leur taille configurée dans le xib, puis redimensionnées en fonction de l'écran juste après. Mais maintenant, il n'y a pas de taille définie dans l'IB depuis la taille dépend de votre sélection de l'appareil (au bas de l'écran). La vraie question est donc: est-il un endroit sûr où les points de vue taille finale a pu être vérifié?
  • êtes-vous à l'aide de coins arrondis pour votre bouton ? Essayez d'appeler layoutIfNeeded() avant.
  • Intéressant. J'étais en effet en utilisant le point de vue image pour calculer un tour frontière. Même si il ne répond pas à la question, il ne fonctionne pas. Ses une bonne astuce pour garder à l'esprit. Merci!
  • Je pense que je vais avoir des problèmes similaires de la configuration d'un bouton image à l'intérieur de la rightview d'un uitextfield. J'ai voulu régler la hauteur et la largeur de l'image bouton à la hauteur de la zone de texte de sorte qu'il a maintenu son ratio d'aspect et de retombées sur le récipient.
InformationsquelleAutor Martin | 2016-09-19