頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


回転させたらframeのwidthがなんか違う?

前からたまにself.viewのframeプロパティの値が変でちょっと待てよ!(キムタク風)って思うことあったんだ。
基本320x480のはずが、画面を横向き(landscape)にしてもframe.size.widthをみたら480になってないじゃない、とかそういうのね。

そんなわけでiPhone 4S(iOS 6.1.3)実機でチェックしてみたよ。回転はviewControllerにおまかせしてこちらでは何の記述(frameの設定など)もなし。ボタンをタップしたらself.viewの各プロパティを表示させてる。
-(void)buttonTappedHandler
{
    CGRect frame = self.view.frame;
    frameLabel.text = [NSString stringWithFormat:@"frame x=%.0f , y=%.0f , width=%.0f , height=%.0f",frame.origin.x,frame.origin.y , frame.size.width, frame.size.height];
    
    CGRect bound = self.view.bounds;
    boundLabel.text =  [NSString stringWithFormat:@"bound x=%.0f , y=%.0f , width=%.0f , height=%.0f",bound.origin.x,bound.origin.y , bound.size.width, bound.size.height];
}
結果はこんなの。

(1)ステータスバーあり、portrait
ステータスバーあり、縦

(2)ステータスバーあり、landscape
ステータスバーあり、横

(3)ステータスバーなし、portrait
ステータスバーなし、縦

(4)ステータスバーなし、landscape
ステータスバーなし、横

そういうことなんだな。
回転させた時のframeが「それ、俺の欲しい値じゃない!」って場合はboundsプロパティを使えばいいってことがわかったよ。
↓ここに書いてたんだけどね。
uiview - "Incorrect" frame / window size after re-orientation in iPhone - Stack Overflow



<< iPhone/iPadのフロントカメラ/リアカメラが使えるかを調べる   TopPage  iOSのイベント伝搬ってどうなってたっけ? >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/783-d3bff393




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad