我注意到使用 iOS 13.3.1 及更早版本的 SwiftUI 中有一个相当奇怪的、可能有问题的行为。为了演示,这个非常简单的场景:
完整示例代码:
import SwiftUI
struct ContentView: View {
@State var showingSheet: Bool = false
var body: some View {
NavigationView {
Text("ParentView")
.navigationBarItems(trailing: Button(action: { self.showingSheet = true }) { Text("Show") })
}.sheet(isPresented: $showingSheet) { SheetView() }
}
}
struct SheetView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
VStack {
Text("Sheet content")
Button(action: { self.presentationMode.wrappedValue.dismiss() }) { Text("Hide") }
}
}
}
Run Code Online (Sandbox Code Playgroud)
重现:
预期结果:工作表再次显示。
实际结果:“显示”按钮的点击目标向底部移动了一些像素,导致动作未触发。这也可以在 View Hierarchy Debugger 中观察到:
其他观察:
所以现在我想知道:我是不是犯了一个错误,或者这是一个实际的 SwiftUI 错误?如果是这样,是否有简单的解决方法?我搜索了类似的问题,但没有遇到任何相同的问题。
编辑:在此期间,我将其作为 Radar Feedback FB7560960 提交给 Apple。
编辑 2:仍在 13.4.1 中发生。
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |