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