【发布时间】:2020-03-05 12:10:12
【问题描述】:
单击选择器后,它会导航到选择视图。项目列表渲染离顶部太远,但在动画完成后捕捉。为什么会这样?
演示:https://gfycat.com/idioticdizzyazurevase
我已经创建了一个最小示例来排除导航栏标题和按钮、表单部分和其他细节:
import SwiftUI
struct NewProjectView: View {
@State var name = ""
var body: some View {
NavigationView {
Form {
Picker("Client", selection: $name) {
Text("Client 1")
Text("Client 2")
}
}
}
}
}
struct NewProjectView_Previews: PreviewProvider {
static var previews: some View {
NewProjectView()
}
}
这发生在预览模式、模拟器和设备上(Xcode 11.2、模拟器中的 iOS 13.2、设备上的 13.3 beta 1)。
【问题讨论】:
-
YouTube 上有一个相当新的视频演示了 SwiftUI 中的基本表单,它在那里工作,所以我猜这不是 SwiftUI 本身的错误:youtu.be/Ho88Eid9gi0?t=573
-
同样的问题 - 非常烦人。如果您对导航栏使用内联样式,它就会消失。
-
...单元格中的文本也会跳动 - 向右大约 4 px
-
@DogCoffee:我将水平跳跃调试为改变插图。这可以通过使用
.listRowInsets()显式设置来解决。 -
我在玩 Xcode 11.4.1 时也遇到了这个问题。我决定下载最新的 Xcode beta (11.5 beta 2) / iOS 13.5,看看它是否有修复。带槽口的 iPhone(如 11)不再重新定位,但没有槽口的 iPhone(SE 2)仍然有这种行为。希望苹果在以后的 beta/11.5 版本中修复这个问题。