1. ホーム
  2. cocoa-touch

[解決済み] iOSで画面の幅と高さを取得する方法は?

2022-03-18 10:27:47

質問

iOSで画面の大きさを知るにはどうしたらいいですか?

現在、使用しているのは

lCurrentWidth = self.view.frame.size.width;
lCurrentHeight = self.view.frame.size.height;

viewWillAppear:willAnimateRotationToInterfaceOrientation:duration:

1回目は画面全体のサイズが表示されます。2回目は、画面全体からナビバーを除いたサイズを取得します。

解決方法は?

<ブロッククオート

iOSで画面の大きさを知るにはどうしたらいいですか?

あなたが投稿したコードの問題は、ビューのサイズが画面のサイズと一致することを当てにしていることです。画面サイズが必要な場合は、次のように画面そのものを表すオブジェクトを見る必要があります。

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;

スプリットビューに対応したアップデートを行いました。 コメントで、ドミトリーから質問がありました。

<ブロッククオート

スプリットビューの画面サイズを取得するにはどうすればよいですか?

上に示したコードは、画面分割モードであっても、画面の大きさを報告するものです。画面分割モードを使用すると、アプリのウィンドウが変更されます。上記のコードで期待する情報が得られない場合、OPと同様に、間違ったオブジェクトを見ていることになります。この場合、画面ではなくウィンドウを見るべきですが、以下のようになります。

CGRect windowRect = self.view.window.frame;
CGFloat windowWidth = windowRect.size.width;
CGFloat windowHeight = windowRect.size.height;

Swift 4.2

let screenRect = UIScreen.main.bounds
let screenWidth = screenRect.size.width
let screenHeight = screenRect.size.height

// split screen            
let windowRect = self.view.window?.frame
let windowWidth = windowRect?.size.width
let windowHeight = windowRect?.size.height