Xcode7でビルドして、iOS7で動作させると
なぜか?
上下に黒帯が・・・。
どうしたらいいか対策を考えてみました。
と、その前に
iOS7対応、本当に必要ですか?
2015年9月15日現在、iOS7のシェアは8%以下ですよ
開発者向けサポートページ
バッサリ切りましょう!
そんなこと、言えませんよね・・・。
さて、考えましょう
動作確認環境
Xcode 7.0.1
iOS9 / iPhone5s
iOS8 / iPhone6
iOS7 / iPhone5s
考えるためにプロジェクトファイルを作ってみる
まず、Xcode7で新しくtestScreenでプロジェクトファイルを作ってみます。
左側のファイルをじいーーと見つめてみると、拡張子が変わったファイルを見つけることができると思います。
そう、起動画面のLaunchScreen.storyboardです。
ご存知の通り、このLaunchScreenの表示で以降の表示サイズが決まります
ここに答えがあると思われます。
iOS Deployment Target を iOS7に
LaunchScreen.storyboardにLabelを置いてビルドしてみます。
iOS9 / iPhone5s
iOS8 / iPhone6
iOS7 / iPhone5s
あらら、真っ黒です。
上下に黒帯がでています。
LaunchScreen.storyboardが無視されているようです。
で、あれば実験です。
実験
Lauch Images Sourceの “Use Asset Catalog” をクリック
Migrateをクリック
Assets.xcassetsにBrandAssetファイルができていますので
Asset.xcassets → BrandAssetを選択
右側のiOS7 and Later → iPhone Portraitを選択すると四角が追加されます。
2xに640×960サイズのPNG
↓ダウンロードして使用してください↓
Retaina4に640×1136サイズのPNG
↓ダウンロードして使用してください↓
こんな感じになります
では、実行
iOS9 / iPhone5s
iOS8 / iPhone6
iOS7 / iPhone5s
これで上下黒帯が消えました!
うまくいきましたね。
まとめ
iOS7対応には、640×960(3.5インチ)と640×1136(4インチ)の2種類のイメージの用意が必要なようです。
2x(640×960)は、iPhone4s用になりますが手元にありませんので実験してみてください。
というか、iOS7対応はユーザーにとって本当に良いことなのでしょうか?
「もったいない」良い言葉だと思いますが
古いOSにはセキュリティーホールとかいろいろな不具合があるんですよ〜
て、教えてあげる方法の一つが「非対応」だとおもうんですけど・・・。
iOS7対応やめませんか!!!
愚痴っぽくなってしまいましたので終了。
iOS7対応ご検討をお祈り申し上げます。
コメント