web-dev-qa-db-ja.com

iPhone:現在の表示サイズまたは画面サイズを取得します

こんにちは、メインビューの幅と高さを取得します。横向きまたは縦向きモードで正しい値が必要です。私は次を試しました:


  NSLog(@"aaa %f", [UIScreen mainScreen].applicationFrame.size.width);
  NSLog(@"zzz %f", self.view.frame.size.width);

これらは、横向きで300、縦向きモードで320を与えます。はい、縦向きモードでは大きくなります。だから..私のビューは画面全体(-ステータスバー)を占めるので、横向きモードでは480、縦向きモードでは320が期待されます。残りのピクセルに何が起こったのか。これらの値をハードコーディングする必要がありますか?ありがとう。

33
gyozo kudor

次の行のいずれかが役に立ちますか?

[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width

ステータスバーの高さを減算できると思いますか?たぶん私はあなたの質問を理解していない

100
Omar

これを試して :

UIWindow* window = [UIApplication sharedApplication].keyWindow;
NSLog(@"%f",window.frame.size.width);
9
jithinroy

デバイスの向きに基づいて正しいサイズを提供する便利なマクロ:

#define SCREEN_WIDTH ((([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) || ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) ? [[UIScreen mainScreen] bounds].size.width : [[UIScreen mainScreen] bounds].size.height)
#define SCREEN_HEIGHT ((([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait) || ([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)) ? [[UIScreen mainScreen] bounds].size.height : [[UIScreen mainScreen] bounds].size.width)
6
sash