[英]Change view based on device - SwiftUI
我最初為 iPad 設計了我的應用程序,現在我也想為 iPhone 添加功能。 有沒有辦法檢查正在使用的設備是什么,然后相應地顯示一個視圖?
結構化英語:
IF current_device == iPhone THEN
DISPLAY iPhoneView
ELSE IF current_device == iPad THEN
DISPLAY iPadView
如果可能的話,我還希望 iPad 視圖只能水平使用,然后 iPhone 視圖只能在可能的情況下垂直使用。
您正在尋找的是Size Classes 。
要在 SwiftUI 視圖中讀取當前horizontalSizeClass
尺寸 class ,您可以參考 HorizontalSizeClass 的環境值
@Environment(\.horizontalSizeClass) var horizontalSizeClass
然后在您的 SwiftUI View
中像這樣使用它:
var body: some View {
if horizontalSizeClass == .compact {
return CompactView() // view laid out for smaller screens, like an iPhone
} else {
return RegularView() // view laid out for wide screens, like an iPad
}
}
值得注意的是,並不是所有的 iPhone 都是橫向compact
的,在多任務配置中 iPad 上存在compact
尺寸 class。 您將在“設備大小類別”和“多任務大小類別”部分下找到所有可能的組合。
一些可能有幫助的文章
或者,您可以使用如下變量根據設備高度(或寬度)設置單獨的閾值:
@State var isLargeDevice: Bool = {
if UIScreen.main.bounds.height > 800 {
return true
} else {
return false
}
}()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.