带有ScrollView的NavigationView具有意外的速度(或没有动画)-大标题+ ScrollView-SwiftUI-iOS 14

时间:2020-08-06 13:16:20

标签: ios swiftui-navigationlink swiftui

在带有大标题的NavigationView中使用时,ScrollView中发生意外的跳动。

不一致的行为可以在下面看到:

Incorect behaviour

复制所需的最低代码:

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()
        
    }
}

奇怪的是,在滚动视图中添加垂直填充后,行为发生了变化,其捕捉速度不如上图所示,但仍然不自然。预览时也可以在画布上复制它。

预期的行为将是这样的:

activityApp

更重要的是WhatsApp中的“设置”页面。

我是Swift(UI)的初学者。有办法解决这个问题吗?我想念什么?

注意:我正在使用XCode 12 beta 3

2 个答案:

答案 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()可以毫无问题地使用。