[英]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.