Hinweis auf Hinzufügen: Dieses Subview Doesnt AutoSize When Added to Root View Controllerautomatisch Sizing UIView nach Fenster
ein Duplikat sein kann ich einen iPad-App, die im Hauptfenster zwischen verschiedenen Ansichten wechselt. Der Blick-Schalt Code sieht wie folgt aus:
- (void)switchToViewController:(UIViewController*)viewController {
if (currentViewController != viewController) {
[currentViewController.view removeFromSuperview];
currentViewController = viewController;
[window addSubview:viewController.view];
}
}
Das Problem ist, dass, wenn die neue Ansicht (a UISplitView) erscheint im Querformat, ist es nicht das gesamte Fenster zu füllen bemessen. Auf der rechten Seite ist ein großer leerer schwarzer Bereich. Es sieht so aus, als ob die Ansicht nur 768 Pixel breit ist und nicht die Breite des Landschaftsfensters von 1024 Pixel.
Wenn ich das Gerät in Hochformat und dann zurück in Querformat drehen, wird die Ansicht korrekt angezeigt.
Wenn das Gerät im Hochformat ist, funktioniert alles einwandfrei. Das UISplitView wird auch richtig dimensioniert, wenn es die erste Ansicht ist, die ich zeige. Das Problem tritt nur auf, wenn ich nach dem Anzeigen einer anderen Ansicht im Querformat zu diesem Objekt wechsele.
Gibt es also eine Möglichkeit, iPhone OS zu zwingen, die Größe der Ansicht zu ändern, nachdem sie dem Fenster hinzugefügt wurde?
Ich habe versucht, sizeToFit
und setNeedsLayout
aufrufen. Ich habe auch versucht, die bounds
der Ansicht zum bounds
des Fensters einzustellen, und ich habe versucht, die frame
einzustellen, um den Rahmen der vorherigen Ansicht zusammenzubringen.
Haben Sie hier keine Probleme, weil Sie die 20px für die Navigationsleiste nicht berechnen? – basti