2 Stimmen

Wie kann man die Orientierung auf dem iPad programmatisch erhalten?

Ich mache eine iPad-App. In dieser App verwende ich die Tabellenansicht in DetailViewController die ich eine Logik hinzugefügt haben, dass meine Tabelle Zelle wird seine Höhe auf der Grundlage der content.The Inhalt wird als ein Etikett gemacht und dann in Tabelle Ansicht Zelle hinzugefügt. Ich habe die Breite des Etiketts als 680px eingestellt. Es funktionierte richtig im Hochformat, aber ich muss 615px im Querformat einstellen.

Wie kann ich bekommen, dass in welcher Ausrichtung mein iPad ist und dann mit if-Anweisung, um die Etikettenbreite zu setzen.

Ich habe CGFloat width = CGRectGetWidth(self.view.bounds); um die Breite in viewWillAppear Aber wenn meine App im Hochformat läuft, dann wird es Breite im Hochformat geben, aber wenn ich in den Querformatmodus gehe, bekomme ich keine Breite. Bitte sagen Sie, wo ich die obige Zeile setzen kann, um die Breite sowohl im Hoch- als auch im Querformat bei der Ausrichtung jederzeit zu erhalten, oder ob es ein anderes Mittel gibt, um dies zu erhalten.

0voto

SimplyKiwi Punkte 12266
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    [self adjustViewsForOrientation:toInterfaceOrientation];
}

- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation {
    if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
        titleImageView.center = CGPointMake(235.0f, 42.0f);
        subtitleImageView.center = CGPointMake(355.0f, 70.0f);
        ...
    }
    else if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
        titleImageView.center = CGPointMake(160.0f, 52.0f);
        subtitleImageView.center = CGPointMake(275.0f, 80.0f);
        ...
    }
}

0voto

Alan Zeino Punkte 4396

Utilisez statusBarOrientation da sich manchmal die Ausrichtung des Geräts ändern kann, die Statusleiste jedoch nicht (z. B. wenn das Gerät flach auf einem Tisch liegt).

if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
{
    adjWidth = 480.0;
}
else
{
    adjWidth = 320.0;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X