J'ai un RootViewController qui se compose de deux UIViewControllers tous créés en code (sans Storyboard/Nibs).UIPageViewController avec mise en page automatique ne met pas à jour la trame enfant jusqu'à ce que viewDidAppear
Le premier UIViewController a les points d'ancrage suivants:
weekView.translatesAutoresizingMaskIntoConstraints = false
weekView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
weekView.heightAnchor.constraint(equalToConstant: 100).isActive = true
weekView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
weekView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
L'autre UIViewController a les points d'ancrage suivants:
daysViewController.view.translatesAutoresizingMaskIntoConstraints = false
daysViewController.view.topAnchor.constraint(equalTo: weekView.bottomAnchor).isActive = true
daysViewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
daysViewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
daysViewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
ce qui en fait épingler au fond du premier UIViewController et prend le reste de la hauteur de l'écran (-100 depuis le premier UIViewController).
Le second UIViewController est un UIPageViewController personnalisé qui consiste en plusieurs vues enfants de UIViewControllers.
Le problème
Pour une raison quelconque lorsque vous faites défiler les pages du UIPageViewController chaque enfant ViewController a la hauteur du cadre incorrect (pas la même par exemple hauteur que la contrainte lui disent avoir). La hauteur du cadre est à la place la même que la hauteur de l'écran.
La hauteur de cadre imprimé dans les trois états différents sont les suivants:
viewDidLoad PageViewController frame: (0.0, 0.0, 375.0, 667.0)
viewDidLoad ChildViewController frame: (0.0, 0.0, 375.0, 667.0)
viewWillAppear ChildViewController frame: (0.0, 0.0, 375.0, 667.0)
viewDidAppear ChildViewController frame: (0.0, 0.0, 375.0, 667.0)
J'ai besoin de la taille d'image correcte de 567 dans le viewDidLoad à la mise en page des sous-vues correctement et pas si tard dans le viewDidAppear.
Comment puis-je résoudre ce problème? Parce que maintenant je dois prendre en compte que le cadre des vues est la pleine hauteur de l'écran au lieu de la 567 il devrait être lors de la création de toutes les sous-vues.