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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

1440閲覧

画面が見切れてしまう問題について

Byon-0421

総合スコア6

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/03/25 07:52

XcordでCreate a new Xcord projectを選び、Gameを選んでからiPhone11でシミュレーターでの実行をすると画面が少し見切れてしまいます。
コードは何も手を加えていません。
iPhone8でシミュレーターを実行すると問題なく表示されます。どうすればiPhone11でも問題なく表示されるようになりますか?
Xcordのバージョンは11.3.1
Swiftのバージョンは5.0
iPhone11は13.3になっています。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

画面に表示されているどの部分がどのように見切れてしまうのか、具体的な状況の説明がほとんどないので、この質問を読んだだけでは何のことを言っているのかさっぱりわかりませんでしたが、Xcodeでプロジェクトを新規作成する際に「Game」を選択して作成したものをそのまま実行するだけで発生するということなので、とりあえずプロジェクトを作成して実行してみて、何のことを言っているのかやっとわかりました。

画面中央に表示される「Hello, World!」の文字がiPhone8だと画面幅ぎりぎりいっぱいに表示されるのに、iPhone11だと左右少しはみ出る大きさで表示されているのを問題としているのですね。これは、単なるサンプルアプリで、簡単な処理しかしていませんので、そのように表示されるようになっているということです。

このサンプルアプリのGameScene.sksのサイズは750x1334で作られており、これはiPhone8の画面の画面サイズ(750x1334)に合わせたサイズで作られています。そのため、iPhone8で実行すると、HelloWordの文字がきちんと表示されます。このiPhone8の画面サイズの縦横比は、750:1134 = 1:1.78です。

一方、iPhone11の画面サイズは828x1792で、iPhone8より少し大きいサイズになりますが、画面の縦横比は828:1792 = 1:2.16と、iPhone8に比べて少し縦長の縦横比になります。

このサンプルアプリは、GameViewController.swiftの21行目で

swift

1// Set the scale mode to scale to fit the window 2scene.scaleMode = .aspectFill

という設定がされており、SKSceneのサイズが画面サイズと合わない時は、SKSceneの縦横比を変えないまま、画面いっぱいに拡大表示するように設定されています。そのため、縦方向ギリギリいっぱいに拡大すると、それに合わせた比率で横方向も拡大され、画面幅よりも大きな幅にSKSceneが拡大されてしまい、その中の文字も画面を少しはみ出るように拡大されてしまうということです。

上記の設定を .aspectFill ではなくて、 .aspectFitにすれば、画面をはみ出ない範囲でギリギリいっぱいに拡大されるので、HelloWorldの文字ははみ出なくなります。ただし、今度は画面の上下に余白ができます。

上記の設定を .aspectFill ではなくて、 .fill にすれば、縦横比を変更して画面ぎりぎりいっぱいになるように拡大されるので、左右がはみでたり、上下の余白ができたりすることはなくなりますが、今度はHelloWorldの文字が縦長に細くなります。

SKScene.sksのサイズを828x1792にして、HelloWorldの文字をSKSceneの左右ぎりぎりに表示される文字サイズにし、上記の設定を .aspectFillにすれば、どの画面サイズでもHelloWorldの文字が画面幅いっぱいに表示されるようになると思います。

投稿2020/03/28 07:39

TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問