質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.04%

Xcode7でiPhone6以降のサイズ・レイアウトが崩れてしまいます

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 2,881

ababab

score 57

Xcode7にアップデートした後、iPhone6以降のモデルのサイズ・レイアウトが崩れてしまいます。
(実機・シミュレータともに)


Tartget→General→App Icons and Launch Imagesの3つをそれぞれ

①アップデート前:AppIcon、LaunchImage、空欄
②アップデート後:AppIcon、LaunchImage、Launch Image
のように設定していました。

①では6,6sにも対応し、②では5sまでしか対応しませんでした。
LaunchScreen.storyboardを追加する方法も試しましたが、
WatchOS storyboards do not support target device type 'iPhone'
のエラーが出てしまい、その後進めることができませんでした。
こちらのエラーの解決方法も調べましたが、わかりませんでした....

iPhone6以降にもサイズを対応させるにはどうしたら良いでしょうか?
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

①アップデート前:AppIcon、LaunchImage、空欄 
②アップデート後:AppIcon、LaunchImage、Launch Image 
のように設定していました。

この説明がちょっと変に見えたんですが、
①アップデート前、②アップデート後それぞれの
3番目の項目の「空欄」「Launch Image」というのは、
「Launch Screen File」の設定のことを言っていますか?
だとすると、そこに「Launch Image」と設定できること自体
おかしいですが、そもそもなぜ以前の通り「空欄」のままに
しておかないのでしょうか?

おそらく、その3番目の「Launch Screen File」の設定を削除して、
空欄に戻せば、以前の通り動くようになると思います。

「Launch Screen File」の設定が空欄になっている場合、
そのアプリをiPhone6以降の機種で動作させると
以前のiPhone5/5sの画面サイズ(320x568)で動作します。
(OSが自動拡大して表示します。)
おそらく以前はこの自動拡大モードで動作していたのが、
「Launch Screen File」を設定したことで、iPhone6の
本来の画面サイズで動作するようになり、レイアウトが
崩れたのだと思います。

アップデート前と同じ動作をさせたいだけなら、
「Launch Screen File」の設定を削除してください。

iPhone6やiPhone6plusの本来の画面サイズ(375x667, 414x736)に
対応するつもりなのであれば、新しい画面サイズにも対応できるよう
レイアウトを再設計して、「Launch Screen File」を設定します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/10/22 10:41

    回答ありがとうございます。
    以前はLaunch Screen Fileの欄を空欄にすると自動に6以降にも対応していたのですが、
    アップデート以降は空欄にしても6以降には対応しなくなったので、
    空欄にせず別の方法を試していました。
    先ほども空欄にしてビルドしてみましたが、やはり6以降のレイアウトは崩れていました。

    Xcode7では6以降用にレイアウトを調整するコードがやはり必要なのでしょうか...

    キャンセル

  • 2015/10/23 11:59 編集

    もしかしてLaunchImageの設定で「Retina HD 5.5」や「Retina HD 4.7」に対しても画像を設定していませんか?

    「Launch Screen File」を設定しない場合でも、LaunchImageに「Retina HD 5.5」や「Retina HD 4.7」の画像を設定したら、やはりiPhone6やiPhone6plusの本来の画面サイズ(375x667, 414x736)で動作します。

    あなたの場合、iPhone5/5sの画面サイズ(320x568)で設計したアプリをiPhone6以降の機種で動作させたいのだと思いますので、もし「Retina HD 5.5」や「Retina HD 4.7」のLaunchImageを設定していたらそれも削除してください。

    念のため、起動直後に

    NSLog(@"%@",NSStringFromCGSize([UIScreen mainScreen].bounds.size));

    を実行して、自分のアプリが今どの画面サイズで動作しているか確認することをお勧めします。

    いずれにしても、このあたりの仕様はXcode7で変更になったものではなく、Xcode6から変わっていません。
    Xcode7に移行した際に出てきた新しい警告メッセージに対応する際に、変更する必要のないLaunchImageの設定まで変更してしまったということはないでしょうか?

    キャンセル

  • 2015/10/26 10:54

    回答ありがとうございます。
    ご指摘通り、Launch Imageに画像を設定したままになっていました。
    画像を削除したところ、6でもレイアウトが崩れずに表示されましたが、
    上下に黒いバーが表示されてしまいました。
    Launch Screen Fileを設定しない→レイアウトは崩れないが黒いバーが出る
    設定する→レイアウトは崩れるが黒いバーは消える
    という状態です。どうすればよいでしょうか?

    キャンセル

  • 2015/10/26 13:17

    > 上下に黒いバーが表示されてしまいました。
    それは必要なLaunch Imageの設定が足りなくて
    iPhone4sの320x480サイズでアプリが動作するように
    なったのだと思います。

    Launch Imageの設定画面例が
    http://qiita.com/777narururumi/items/62a8b3de7d89178e2a74
    の最初の図にありますが、
    この中の「Retina HD 5.5」「Retina HD 4.7」の画像は削除し、
    iPhone Portlaitの「2x」と「Retina 4」の画像だけ設定してください。

    iPhone5/5s用の320x568サイズでアプリを動作させるには
    少なくとも「Retina4」のLaunch Image設定が必要です。
    これがない場合、iPhone4sの320x480サイズでアプリが
    動作します。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.04%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる