gpt4 book ai didi

swiftui - 如何在SwiftUI中检测targetEnvironment是否为iPadOS?

转载 作者:行者123 更新时间:2023-12-03 13:44:32 24 4
gpt4 key购买 nike

在为iOS和iPadOS进行构建时,我想显示不同的 View 。目前,我知道我可以做

import SwiftUI

struct ContentView: View {
#if targetEnvironment(macCatalyst)
var body: some View {
Text("Hello")
}
#else
var body: some View {
Text("Hello")
}
#endif
}

在macOS和iPadOS/iOS之间显示不同的 View (在Swift 4/5中引入)。但是,我如何区分后者呢?我似乎无法使用targetEnvironment ...

最佳答案

我在代码中使用了这个:

    private var idiom : UIUserInterfaceIdiom { UIDevice.current.userInterfaceIdiom }
private var isPortrait : Bool { UIDevice.current.orientation.isPortrait }

然后,您可以执行以下操作:

    var body: some View {
NavigationView {
masterView()

if isPortrait {
portraitDetailView()
} else {
landscapeDetailView()
}
}
}

private func portraitDetailView() -> some View {
if idiom == .pad {
return Text("iPadOS")
} else {
return Text("iOS")
}
}

关于swiftui - 如何在SwiftUI中检测targetEnvironment是否为iPadOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57652242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com