Swiftui 尝试读取UIKit';UIS设备定向
使用iOS14.4.2、Swfit5.3.2、XCode12.4,物理设备=iPhoneXS 出现时,我试图将当前设备方向写入静态属性,然后在视图中使用它 但是,显示时未正确写入该值 这是我的代码(见下文) 请注意,Swiftui 尝试读取UIKit';UIS设备定向,swiftui,device-orientation,uidevice,onappear,Swiftui,Device Orientation,Uidevice,Onappear,使用iOS14.4.2、Swfit5.3.2、XCode12.4,物理设备=iPhoneXS 出现时,我试图将当前设备方向写入静态属性,然后在视图中使用它 但是,显示时未正确写入该值 这是我的代码(见下文) 请注意,isPortrait将始终为false——无论我在启动时如何定位iPhone。 特别是,当iPhone在启动时处于纵向状态时,属性不应该是true 为什么会有这种奇怪的行为 我认为,苹果应该加强与SwiftUI的设备定位问题 struct MyView: View {
isPortrait
将始终为false
——无论我在启动时如何定位iPhone。
特别是,当iPhone在启动时处于纵向状态时,属性不应该是true
为什么会有这种奇怪的行为
我认为,苹果应该加强与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
谢谢-这在页面上的
中起作用。有一个替代品是很好的,但是为什么第一个不起作用呢?我没有找到原因,但它与您的代码无关。很可能是个虫子。