簡體   English   中英

SwiftUI onAppear 在嘗試讀取 UIKit 的 UIDevice 方向時無法正常工作

[英]SwiftUI onAppear not working properly when trying to read UIKit's UIDevice orientation

使用iOS14.4.2、Swfit5.3.2、XCode12.4,物理設備=iPhoneXS

出現時,我試圖將當前設備方向寫入 Static 屬性,然后在視圖中使用它。

但是,出現時該值未正確寫入。

這是我的代碼(見下文)

請注意, isPortrait總是false的——無論我在啟動時如何定位我的 iPhone。 特別是當 iPhone 在啟動時處於 Portrait 狀態時,該屬性不應該是true嗎?

為什么會出現這種奇怪的行為?

我認為,Apple 應該通過 SwiftUI 來加強面向設備的問題。

struct MyView: View {
  
    @State var isPortrait: Bool = true
 
    var body: some View {
    
        VStack {
            Text("text1")
            if isPortrait {
                Test("text2")      // never shown why ???
            }
        }
        .onAppear {
            isPortrait = (UIDevice.current.orientation == .portrait)
            print(isPortrait)  // always prints 'false' why ????
        }
    } 
}

請不要告訴我改用GeometryReader ,因為這在 iPad 上不起作用(還)。

使用這個:

UIApplication.shared.windows.first?.windowScene?.interfaceOrientation.isPortrait

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM