![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiExdPPqr0QTisiHFf1Mi2cGMmZqHerPnW1cMmyHMtfwLiVNW3422TeJhKanmqYA3HNF_M3MhmlB7VHdeJol_xz6hAtqDd8GIfORYckSoQ94uNaUYy2Ei5IS_ee0HuVhZLOMb-4TOAzvanQYPHAVBz4I6UQacZ7uqEDeLky8CX0bs4XhBpb2BupTAHM/s1600-rw/xcode.jpg)
昨年夏から個人的に作成しているアプリを開発している途中でiOS8にアップデートされてしまい、
それに伴い、xcodeもバージョンアップされるわけですが、ここに落とし穴があった・・・
現象
何故かios7の場合に上下にマージンが入ってしまう。
ていうかバグみたく見えるorz...
少し分かりにくいが、ios7では、上下に黒いブランクが入り、画面がそこまで表示されない。
ios8
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvTVJxMuC7Kd4nkhjp35-YYuTnXvejIzfWQiaypk5f3yxU2t5asoPzZnx4kKxDgX1-3SPthrq8Eul3t2JBVin7-gIiJIf4_Bwozy8R2SUJg6q1IGla05iuXvbR615ewSqSG2s0pvytF3CpOQuXS9-hlzYn3m7pmK9ySxzfw_-chnAFzEVOJ3BdzlRQ/s1600-rw/25-1-b6db35540108ea839f3a0531abb6e4c0.png)
画面上部までアイコンが表示されている。
ios7
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8g9HqaZbCWtzmqRZajlss_xH1QRDzKOlNbnBV9JElnw-xdHptDuBxiKNizG679ubYgXKKUbXc6ky-staB9_JPJmyM21oqsEValLv22BhqyfKfwAbu4WYw4U4ZjwN-kFpwtq9aTyi6xKPlpFvPIAE2tQnkcv7Vnugj752w5fjEqp3LeyqlBkG1KPGu/s1600-rw/25-2-64437b44c23feb6d58b59eed3c908c98.png)
画面上部は、黒枠まで表示されていない。明らかにブランク領域!
原因
スプラッシュ画面でした。
デフォルトで「LaunchScreen.xib」ファイルのサイズに依存するみたいです。
ちなみに、Info.plistの「Launch screen interface file base name」という箇所にセットされているので、
それを削除すればいいのかと思ったが、それでは解決にならない。
そもそも、このスプラッシュ画面はios8の新機能らしい。
どうやらこれは、iPhone4xの3.5インチのサイズになっているらしい。
iPhone5(4インチ)の縦長が自動判別できないようだ。
なんというおバカさん・・・だったら、画面サイズ変えるなや!!
対処方法
xcode5の時にスプラッシュ画像の仕様が変更になった「ImageAsset」の設定がデフォルトで無いことが原因のようだが、
以下の手順で簡単に修復する。
1.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsMQCHM_aVIUIiOoILKTMmXT-57oQSpr5ybTqjb2GEwtsiHGW16TGt8u8B8bHTsCfoYRFvVQRUx7cABxwYYPOsYe-DWT3s2doj60NtKDw9UY1aS716wOQIqPVnBViG9wLdKAUlnqKQ6dS86bw3-K2xIBIxlx_KCrUPwpX3pX1mgkH-eYugoMzZGQgh/s1600-rw/25-3-e1304e270434d854c5167bce141d21b8.png)
まず、「General」設定画面に行き、画面の矢印の箇所をクリックする。
2.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9PiwbTGrRq2taFBde3sTjRxWiv2Rfp0kDn9B8Z8ZPS3d0eSq2VE705mQCFtMzGFi5ezUVOcU0Rflk2KEA-sH-69-Ri1axznZ59MWH1GLJ_OML5lzFBNH6dJwnv1WuoTLdVzvyS4Zm_R1rD6sStjFElJzqx0dBq64vQ09RBPErsPnE9Ru-YNBKA9Rj/s1600-rw/25-4-81aebc4b950243336f42c889de29e999.png)
表示されたダイアログの「Migrate」ボタンを押すだけで、この問題は解決です。
気づいたこと
どうやら、ios8がLunchImageを参照してしまうらしいので、デフォルトはOFFとの事ですが、
そもそも、そんな仕様変更いらないのでは?
下位互換性を重視してよ、ホントに。
お世話になったサイト
Xcode6でiOS7対応アプリを作るときのワナ
thanksです!!
0 件のコメント:
コメントを投稿