iOS端末の画面サイズは、iPhoneならば320×480、iPadなら768×1024などです。その幅と高さは、UIScreenクラスのmainScreenメソッドで得られた画面情報から取得できました。
ステータスバーを含んだ画面サイズ
[[UIScreen mainScreen] bounds].size.width //幅
[[UIScreen mainScreen] bounds].size.height //高さ
ステータスバーを除いた画面サイズ
[[UIScreen mainScreen] applicationFrame].size.width //幅
[[UIScreen mainScreen] applicationFrame].size.height //高さ
確認プログラム
コメントアウトの(A)はステータスバーを隠す処理、(B)はステータスバーをランドスケープ(横向き)にする処理です。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//(A)ステータスバーを隠す
//[UIApplication sharedApplication].statusBarHidden = YES;
//(B)ステータスバーをランドスケープにする
//[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
//ステータスバーを含んだ画面サイズ
CGRect bounds = [[UIScreen mainScreen] bounds];
NSLog(@"bounds width:%.f height:%.f", bounds.size.width, bounds.size.height);
//ステータスバーを覗いた画面サイズ
CGRect aFrame = [[UIScreen mainScreen] applicationFrame];
NSLog(@"aFrame width:%.f height:%.f", aFrame.size.width, aFrame.size.height);
return YES;
}
実行結果
iPhoneシミュレータでコメントアウトの条件を変えて実行しました。ステータスバーの高さは20ポイントなので、applicationFrameではそれが差し引かれた値となりました。
そのまま実行
bounds width:320 height:480
aFrame width:320 height:460
(A)の処理をコメントアウト
bounds width:320 height:480
aFrame width:320 height:480
(B)の処理をコメントアウト
bounds width:320 height:480
aFrame width:300 height:480
(A)と(B)の処理をコメントアウト
bounds width:320 height:480
aFrame width:320 height:480