STUDIO BEATNIX

【iPhone開発】UIPopoverControllerの描画エリア

UIPopoverControllerはpopoverContentSizeプロパティまたはcontentSizeForViewInPopoverプロパティで画面サイズを変更することができますが、これらのプロパティに同じ値を設定しても描画エリアが異なるので注意が必要です。

popover.popoverContentSize = CGSizeMake(320, 480);
実際の描画エリア:320×443

self.contentSizeForViewInPopover = CGSizeMake(320, 480);
実際の描画エリア:320×480

popoverContentSizeはheightが37px小さくなります
なんかすっきりしないのでポップオーバーのサイズを指定したい場合はcontentSizeForViewInPopoverを使うのがよさそうです

あとUIPopoverController内のUIViewControllerのinitでself.view.frameの値を調べると
size=(width=748, height=1024) (ランドスケープ(横)モード時)
または
size=(width=768, height=1004) (ポートレート(縦)モード時)
がセットされているので、この値を使ってUIViewを作ったりするととんでもない大きさになります。iPhoneのソースをそのまま使う場合は要注意です。viewWillAppearで調べるとちゃんとポップオーバー内のviewのサイズが得られます

You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

Facebook Comments

Leave a Response