iOS で画面のサイズを取得するにはどうすればよいでしょうか?
現在、私は以下を使用しています:
lCurrentWidth = self.view.frame.size.width;
lCurrentHeight = self.view.frame.size.height;
とviewWillAppear:
willAnimateRotationToInterfaceOrientation:duration:
1 回目は画面全体のサイズが表示されます。2 回目はナビゲーション バーを除いた画面が表示されます。
ベストアンサー1
iOS で画面のサイズを取得するにはどうすればよいでしょうか?
投稿したコードの問題は、ビューのサイズが画面のサイズと一致することを期待していることですが、ご覧のとおり、必ずしもそうとは限りません。画面のサイズが必要な場合は、次のように、画面自体を表すオブジェクトを確認する必要があります。
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
分割ビューの更新:コメントで、Dmitry は次のように質問しました:
分割ビューで画面のサイズを取得するにはどうすればよいですか?
上記のコードは、分割画面モードであっても画面のサイズを報告します。分割画面モードを使用すると、アプリのウィンドウが変わります。上記のコードで期待する情報が得られない場合は、OP と同様に、間違ったオブジェクトを見ていることになります。ただし、この場合は、次のように、画面ではなくウィンドウを見る必要があります。
CGRect windowRect = self.view.window.frame;
CGFloat windowWidth = windowRect.size.width;
CGFloat windowHeight = windowRect.size.height;
スウィフト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