34

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


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

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

4

3 に答える 3

104

次の行のいずれかがあなたのために働きますか?

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

ステータスバーの高さを差し引くことができると思いますか?多分私はあなたの質問を理解していません

于 2011-01-06T12:38:42.437 に答える
10

これを試して :

UIWindow* window = [UIApplication sharedApplication].keyWindow;
NSLog(@"%f",window.frame.size.width);
于 2011-01-06T11:27:59.873 に答える
6

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

#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)
于 2014-09-25T13:58:24.840 に答える