SwiftUI デバイスのインターフェイスタイプでView(デザイン)を切り替える

メインでデバイスのインターフェイスタイプ判断、生成するViewを切り替える。
PhoneView側にiPhoneでのデザイン、PadView側にiPadでのデザインを書けば良い。
Viewをパーツ化しておけば、インターフェイスタイプ毎にデザインを調整できる。

Example

ExampleDeviceApp.swift

import SwiftUI

@main
struct ExampleDeviceApp: App {
    var body: some Scene {
        WindowGroup {
            if UIDevice.current.userInterfaceIdiom == .pad {
                PadView()
            }
            else {
                PhoneView()
            }
        }
    }
}

PhoneView.swift

import SwiftUI

struct PhoneView: View {
    var body: some View {
        Text("iPhone")
            .font(.largeTitle)
    }
}

struct PhoneView_Previews: PreviewProvider {
    static var previews: some View {
        PhoneView()
    }
}

PadView.swift

import SwiftUI

struct PadView: View {
    var body: some View {
        Text("iPad")
            .font(.largeTitle)
    }
}

struct PadView_Previews: PreviewProvider {
    static var previews: some View {
        PadView()
    }
}

SwiftSwift,SwiftUI

Posted by shi-n