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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Xcode

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

0回答

694閲覧

10年以上使用し続けているiPhoneAppで、画面サイズからノッチの判定をしたい

kmiura

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Xcode

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2020/04/14 13:26

画面サイズというか、ノッチがあるかを判定したいので、比率が知りたいです。
新機種が出ても困らないように、機体判別から分ける方法は使いません。
OpenGLを使用して作られたゲームです。
ゲームの画面は縦方向のみです。

私はマージンを含めた画面サイズを取得しようとしていますが、
これに難航し、セーフエリアのものしか取得出来ません。
現在のゲームの画面表示域がセーフエリアの場所になっているため、過去に問題とはなりませんでした。

XibファイルでEAGLViewをReferencing OutletsでAppDelegate.hに関連付けしていたのですが、
これが妙な画面にしているせいか、実機(iPhone 11 pro)(比率9:19)でも

UIScreen.mainScreen.nativeBounds.size;が960 x 1704
UIScreen.mainScreen.Bounds.size;が320 x 568

とセーフエリアの比率(9:16)で返ってくる。
(空の新規プロジェクトを作成した場合AppDelegate.hでnativeBounds 1125x2436 の数値が正常に取れる)

新規でstoryboardを作成しても、AppDelegate.hに関連付け出来ず、
ストーリーボードに関連したViewController.hには関連付け出来るが、
AppDelegate.hにViewController.hをインポート出来ず(#importしてもエラーになる)
そもそもstoryboardのViewもXcodeのGUIだとノッチのある形なのに、ViewのBounds.sizeが16:9で返ってくる。

セーフエリアの概念が無かった時代のものが、原因の気がしますが、
私は一度完成したアプリを調整しかしてこなかった為に、最新環境で作り直す事は許されていません。

どうかよろしくお願いします。

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

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

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

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

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

ch3cooh

2020/04/16 08:43

古いXcodeでアプリの更新作業をされている状態でしょうか? 質問としては「画面サイズを取得したときに正しいサイズが返ってこない」だとお見受けします。 私自身は、古いアプリを現行機で動かすような保守作業をしたことがないので、kmiuraさんの状況が想定できず、かなり推測を含んだものとなりますが、「アプリが拡大表示モード」になっているような印象を受けます。 拡大表示モードを解除するための対応、たとえば、、、 * 4インチデバイスに対応するために スプラッシュ画像として「Default-568h@2x.png」を追加する * 4.7インチデバイスに対応するために「Launch Screen」を追加する で、対応できないでしょうか。
kmiura

2020/04/16 11:15

スプラッシュ画像は追加する枠が有りませんでした。 Launch Screen Fileをxibからstoryboardの物に変更する事でセーフエリア外まで使えるようになりました。 ひとまず自己解決?です。ありがとうございました。 代わりに320x568の表示を持つ375x812の画面になりました…。 引き伸ばしても320の範囲外は真っ暗…。 問題の解決は新たなバグの始まり…。またしばらく自分で頑張ります。 画面崩さず物理尺度を取る方法は引き続き募集したいと思います…
ch3cooh

2020/04/16 11:22

無事解決して(?)よかったです。 質問内容自体が複数要因の絡んだもので複雑ですので、回答がつきにくいかもしれません。タイトルの変更と、やりたいことの概要を書いておくと回答がつきやすくなるかと思いますので、ご検討よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問