0

これが不可能だなんて信じられない。それは、誰もが必ず必要とするものの 1 つにすぎません。

したがって、この:

[UIScreen currentScreen] bounds];

携帯電話が縦向きか横向きかに関係なく、iPhone で 320 の幅を返します。だから私はこのヘルパーメソッドを作りました:

+(CGRect)screenFrame {

    CGRect frame = [UIScreen mainScreen].bounds;

    if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation])) {
        return frame;
    }
    else {
        CGRect newFrame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.height, frame.size.width);
        return newFrame;
    }

}

画面が横向きに変わらなくても、デバイスが横向きになっていると思われる場合を除いて、これはうまく機能します.

これを機能させるにはどうすれば調整できますか?

4

1 に答える 1

3

最良のガイダンスは (主に「横置き」の向きのため) を使用すること[[UIApplication sharedApplication] statusBarOrientation]です。これにより、アプリケーションがメイン ウィンドウの座標変換マトリックスをどのように調整したかに基づいて、正しい値が得られます。

于 2012-07-07T15:42:00.387 に答える