2014/03/02

[ios][[UIScreen mainScreen] bounds]のheightが480になるのはimageがないためだった

Storyboardを機種ごとに分けるには、まず機種を見分けねば。
というわけで調べていると、画面が4inchかどうか・・・というよりも、画面の高さが568pxかどうかで見分けるようだった。
うーん、なんかすっきりせんが・・・。


    int height = [[UIScreen mainScreen] bounds].size.height;

こんなので画面の高さが取れるらしいのでシミュレータで試したのだが、4インチのシミュレータを立ち上げても480にしかならない。
シミュレータやアプリの設定をさんざん見たのだが、特に何も無い。
が、他のアプリは568になってる。
うーむ・・・。

こんな回答があった。
http://stackoverflow.com/questions/12505910/why-my-uiscreen-mainscreen-bounds-size-return-480-in-ios6
確かに、このプロジェクトはLaunch Imageを削除していた。
他のプロジェクトからImages.xcassetsをもらってくると、568になった。
納得いかん・・・・。
削除しなければいいだけの話ではあるのだが、デバイスの情報が取得できないってところがね。

なお、取得値が480になるだけじゃなく、アプリの画面サイズもそうなってしまう。
前回取ったスクリーンショットがそうだ。
「頭の部分が長くなっただけ」と書いたが、上下にスペースが入ってセンタリングされるような画面になっていた。

Form Factor : 3.5inch / iOS6.1(Retina 3.5inch) Emulator


Form Factor : 3.5inch / iOS6.1(Retina 4inch) Emulator


Form Factor : 4inch / iOS6.1(Retina 3.5inch) Emulator


Form Factor : 4inch / iOS6.1(Retina 4inch) Emulator

4インチのエミュレータで下までスクロールするようになった。
Form Factorが4インチで作ると3.5インチ画面で下までスクロールしないのはそのままだ。
やはりStoryboardを分けるとか、Auto Layoutとか、何かやらんといかんようだな。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。