Xcode7でビルドして、iOS7で動作させると画面上下に黒帯が入る

スポンサーリンク
Sample Code

20151006_013
Xcode7でビルドして、iOS7で動作させると
なぜか?
上下に黒帯が・・・。

どうしたらいいか対策を考えてみました。

と、その前に
iOS7対応、本当に必要ですか?
2015年9月15日現在、iOS7のシェアは8%以下ですよ

20151006_012
開発者向けサポートページ
バッサリ切りましょう!

そんなこと、言えませんよね・・・。

さて、考えましょう

動作確認環境

Xcode 7.0.1

iOS9 / iPhone5s
iOS8 / iPhone6
iOS7 / iPhone5s

考えるためにプロジェクトファイルを作ってみる

まず、Xcode7で新しくtestScreenでプロジェクトファイルを作ってみます。

左側のファイルをじいーーと見つめてみると、拡張子が変わったファイルを見つけることができると思います。
そう、起動画面のLaunchScreen.storyboardです。
ご存知の通り、このLaunchScreenの表示で以降の表示サイズが決まります

ここに答えがあると思われます。

iOS Deployment Target を iOS7に

20151006_002

 

LaunchScreen.storyboardにLabelを置いてビルドしてみます。

20151006_001

iOS9 / iPhone5s

iPhone5s_iOS9
問題ありません

iOS8 / iPhone6

iPhone6_iOS8
問題ありません

iOS7 / iPhone5s

iPhone5s_iOS7
あらら、真っ黒です。
上下に黒帯がでています。
LaunchScreen.storyboardが無視されているようです。

で、あれば実験です。

実験

20151006_003

Lauch Images Sourceの “Use Asset Catalog” をクリック

 

20151006_004

Migrateをクリック

 

Assets.xcassetsにBrandAssetファイルができていますので

20151006_005

Asset.xcassets → BrandAssetを選択

 

20151006_006

右側のiOS7 and Later → iPhone Portraitを選択すると四角が追加されます。

2xに640×960サイズのPNG

↓ダウンロードして使用してください↓

LI_640_960

 

Retaina4に640×1136サイズのPNG

↓ダウンロードして使用してください↓

LI_640_1136

 

こんな感じになります

20151006_007

 

では、実行

iOS9 / iPhone5s

20151006_008
問題ありません

iOS8 / iPhone6

20151006_009
問題ありません

iOS7 / iPhone5s

20151006_010
Retaina4のイメージが表示されました。

これで上下黒帯が消えました!

うまくいきましたね。

まとめ

iOS7対応には、640×960(3.5インチ)と640×1136(4インチ)の2種類のイメージの用意が必要なようです。
2x(640×960)は、iPhone4s用になりますが手元にありませんので実験してみてください。

というか、iOS7対応はユーザーにとって本当に良いことなのでしょうか?
「もったいない」良い言葉だと思いますが
古いOSにはセキュリティーホールとかいろいろな不具合があるんですよ〜
て、教えてあげる方法の一つが「非対応」だとおもうんですけど・・・。

iOS7対応やめませんか!!!

愚痴っぽくなってしまいましたので終了。

iOS7対応ご検討をお祈り申し上げます。

コメント

タイトルとURLをコピーしました