Frage

Ich habe eine Unterklasse von UIViewController, die eine UIView behandelt. Der Viewcontroller präsentiert modal (er gleitet vom unteren Rand des Bildschirms nach oben). An der Spitze der Ansicht, ich habe eine Navigationsleiste hinzugefügt. Beachten Sie, dass diese Bar nicht durch einen Navigationscontroller gehandhabt wird.

Ich mag die navbar bekommen in der Höhe zu schrumpfen, wenn der Blick auf Landschaft dreht sie (ähnlich wie es sich verhält, wenn es von einem UINavigationController gehandhabt wird). Ich kann aber nicht seine automatische Größenmaske auf flexible Höhe in IB gesetzt und so in Code tun bewirkt, dass die navbar vollständig verschwinden.

Gibt es eine Möglichkeit, dies zu tun? Wie wird es durch die UINavigationController getan?

P. S. Ich würde es vorziehen, nicht transformieren, um eine Skalierung zu müssen, da dies den Text in dem Titel vermasselt.

EDIT:. Ich kann es mit ein wenig Hilfe gelöst, lesen Sie unten die Antwort geschrieben

War es hilfreich?

Lösung 2

fand ich die Lösung, und im Nachhinein fühle ich mich ziemlich dumm. Ich hatte gerade flexible unteren Rand in der Navigationsleiste der Autoresize Maske aufzunehmen. Der Kredit ist aufgrund Benutzer RayNewbie in diesem Thread, was mich zu der Lösung zeigte:

http://discussions.apple.com/thread.jspa?messageID=8295525

Andere Tipps

Anstatt setzt es die automatische Maske, warum überprüfen Sie nicht nur die aktuelle Ausrichtung in viewWillAppear sowie in didRotateFromInterfaceOrientation, und stellen Sie den entsprechenden Rahmen?

- (void) updateNavBar {
    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
    if ((UIInterfaceOrientationLandscapeLeft == orientation) ||
        (UIInterfaceOrientationLandscapeRight == orientation)) {
        myNavBar.frame = CGRectMake(0, 0, 480, 34);
    } else {
        myNavBar.frame = CGRectMake(0, 0, 320, 44);
    }
}
- (void) viewWillAppear {
    [self updateNavBar];
    // ... SNIP ...
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self updateNavBar];
    // ... SNIP ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top