2012年8月2日木曜日

iOS端末画面のwidthとheightを取得する

このエントリーをはてなブックマークに追加
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

0 件のコメント:

コメントを投稿