Help us understand the problem. What is going on with this article?

iOSアプリ マルチデバイス対応をコピペでやるよ

マルチデバイス対応

端末によって画面サイズが異なるので端末に合わせた対応が必要。
その方法の1つをメモっておこ〜

SceneDelegate.swiftに以下をコピペしよう

SceneDelegate.swiftってファイルがデフォルトであるはずなので、そこのsceneメソッドのところに以下をコピペしましょ。
これをコピペしただけだとエラーが出るけど気にしないでおk。

//端末の画面の大きさを取得
let storyboard:UIStoryboard = self.grabStoryboard()
//表示するstoryBoardをセット!
if let window = window{
    window.rootViewController = storyboard.instantiateInitialViewController() as UIViewController?
    }
self.window?.makeKeyAndVisible()

次に、SceneDelegate.swiftの空いているところに以下をコピペしましょ。

//使用している端末は何かな?チェック!
func grabStoryboard() -> UIStoryboard{
            var storyboard = UIStoryboard()
            let height = UIScreen.main.bounds.size.height
            //画面の高さが667pxってことは、さてはiPhoneSE2ですかな??
            if height == 667 {
                storyboard = UIStoryboard(name: "iPhoneSE2", bundle: nil)
            //画面の高さが736pxってことは、さてはiPhone8plusですかな??
            }else if height == 736 {
                storyboard = UIStoryboard(name: "iPhone8plus", bundle: nil)
            //上のコメントと一緒な感じだよ。察してくれよな!
            }else if height == 812{
                storyboard = UIStoryboard(name: "iPhone11Pro", bundle: nil)
            //以下略
            }else if height == 896{
                storyboard = UIStoryboard(name: "iPhone11ProMax", bundle: nil)
            }else if height == 1112{ 
                storyboard = UIStoryboard(name: "iPad", bundle: nil)
            }else{
                switch UIDevice.current.model {
                case "iPnone" :
                storyboard = UIStoryboard(name: "se", bundle: nil)
                    break
                case "iPad" :
                storyboard = UIStoryboard(name: "iPad", bundle: nil)
                print("iPad")
                    break
                default:
                    break
                }
            }
            return storyboard
    }

storyboardを作るよ〜

次にstoryBordを対応する機種だけ作っておきます〜
新しいstoryBoardを作る → ファイル名を対応したい機種の名前に!(さっきコピペしたgrabStoryboardメソッドに示されている機種名だけ対応可)
そして、xcodeの下の方の「view as: iPhone SE(2nd generation)」とか書いてあるところをタップ

image.png

すると以下のような表示が出るから、ファイル名に指定した画面を選択

image.png

次に「Is initial controller」にチェックを入れる〜
スクリーンショット 2020-07-24 13.34.46.png

これを対応したい機種の種類分作成します。
これで完了!

Furuta03
Wi-Fiと空調と餃子が好き。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした