在带有大标题的NavigationView中使用时,ScrollView中发生意外的跳动。
不一致的行为可以在下面看到:
复制所需的最低代码:
import SwiftUI
struct LeaderboardView: View {
var body: some View {
NavigationView(){
ScrollView(){
VStack(){
ForEach(0...50, id: \.self){ number in
Text("Number: \(number)").padding()
}
}.frame(maxWidth:.infinity)
}.navigationBarTitle("Numbers")
Spacer();
}
}
}
struct LeaderboardView_Previews: PreviewProvider {
static var previews: some View {
LeaderboardView()
}
}
奇怪的是,在滚动视图中添加垂直填充后,行为发生了变化,其捕捉速度不如上图所示,但仍然不自然。预览时也可以在画布上复制它。
预期的行为将是这样的:
更重要的是WhatsApp中的“设置”页面。
我是Swift(UI)的初学者。有办法解决这个问题吗?我想念什么?
注意:我正在使用XCode 12 beta 3
答案 0 :(得分:1)
要使用类似第二个gif的行为,请使用List
NavigationView(){
List{
ForEach(0...50, id: \.self){ number in
Text("Number: \(number)").padding()
}
}.navigationBarTitle("Numbers")
}
答案 1 :(得分:0)
Xcode Beta 4和iOS 14 Beta 4更新已解决了此问题。 带有ScrollView()的NavigationView()可以毫无问题地使用。