一 學習目標
在SwiftUI中切換橫豎不同的布局
二 學習效果

image.png

image.png
三 主要操作步驟
3.1 監(jiān)聽屏幕轉(zhuǎn)動事件
//監(jiān)聽屏幕轉(zhuǎn)動
Text(isLand ? "我現(xiàn)在是橫屏" : "我現(xiàn)在是豎屏")
.onReceive(orientationPublisher) { _ in
let windowScene = UIApplication.shared.windows.first? .windowScene
self.isLand = windowScene?.interfaceOrientation.isLandscape ?? false
}
3.2 根據(jù)不同的屏幕事件顯示不同的布局
Text(isLand ? "我現(xiàn)在是橫屏" : "我現(xiàn)在是豎屏")
四 完整代碼
import SwiftUI
import AlertToast
struct ContentView: View {
@State var isLand = false
let orientationPublisher = NotificationCenter.default.publisher(for: UIDevice.orientationDidChangeNotification)
var body: some View {
Text(isLand ? "我現(xiàn)在是橫屏" : "我現(xiàn)在是豎屏")
.onReceive(orientationPublisher) { _ in
let windowScene = UIApplication.shared.windows.first? .windowScene
self.isLand = windowScene?.interfaceOrientation.isLandscape ?? false
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}