Ich habe eine View-Controller programmgesteuert eingerichtet, die ein Kind hat UIPageViewController
. Dies zeigt verschiedene andere View-Controller an, die ebenfalls programmgesteuert eingerichtet sind. Die Ansichten dieser Ansichts-Controller haben translatesAutoresizingMaskIntoConstraints
auf YES
, aber die Ansicht des Seitenaufruf-Controllers verwendet Einschränkungen, um sich im TopView-Controller zu positionieren.UIPageViewController nicht die Größe seiner untergeordneten Ansicht Controller
Das Problem ist, wenn der Benutzer das Gerät dreht der Seitenaufruf Controller Größe seinen Rahmen, aber seine Kind-View-Controller nicht. Durch didRotateFromInterfaceOrientation
ist sein Rahmen immer noch aus der alten Ausrichtung. Ich habe überprüft, dass die Rotationsmethoden auf den Child-View-Controllern aufgerufen werden, ihr Frame ändert sich einfach nicht.
habe ich die Seite View-Controller wie folgt auf:
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageViewController.view.backgroundColor = [UIColor clearColor];
self.pageViewController.view.translatesAutoresizingMaskIntoConstraints = NO;
self.pageViewController.dataSource = self;
self.pageViewController.delegate = self;
[self.pageViewController willMoveToParentViewController:self];
[self.view addSubview:self.pageViewController.view];
[self addChildViewController:self.pageViewController];
[self.pageViewController didMoveToParentViewController:self];
self.currentPageIndex = 0;
self.currentPageController = [self pageForIndex:self.currentPageIndex];
self.currentPageController.delegate = self;
[self.pageViewController setViewControllers:@[self.currentPageController] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
Ich habe setNeedsLayout
versucht Aufruf, aber es ist eine ungeschickte Drehung Animation und die nächste Seite, die ich zu streichen ist auch nicht richtig angepasst.
Warum ändert der Seitenaufruf-Controller die Größe der untergeordneten Ansichts-Controller nicht und wie bekomme ich dies?
Danke!
Haben Sie eine Lösung für Ihr Problem gefunden? Ich stehe mit demselben Problem fest. – AlexR
Das Problem ist, dass -didRotateFromInterfaceOrientation auf den untergeordneten Controllern nie aufgerufen wird. Ich löste es, indem ich es manuell von der übergeordneten Ansicht Controller-didRotateFromInterfaceOrientation aufrufen. –
Was ist die Methode auf dem Cllld View Controller, die Sie aufrufen, um die Orientierungsänderung zu handhaben? – Satyam