SwiftUI:动态移动列表滚动上的导航栏项目

SwiftUI: Dynamically move navigationBar items on List scroll

我有 custom navigationBarItems attached to my NavigationBar (the SF Symbols chevron) and when I go to scroll through my items in the ScrollView, the NavigationBar will collapse to .inline,我的物品留在原处。

是否可以将 chevron 锚定到 .navigationBarTitle 的右侧或在滚动时动态移动项目?

这是我当前的代码:

    NavigationView {
        ScrollView {
            eventView()
        }
        .navigationBarItems(leading:
            Button(action: {
                // action
            }) {
                Image(systemName: "chevron.down.circle")
                    .font(.system(size: 21, weight: .regular))
                    .offset(x: 169, y: 47)
                    .foregroundColor(Color(#colorLiteral(...))
                }
            )
            .navigationBarTitle("Upcoming")
    }

(我是 SwiftUI 的新手,我知道它还不够好)

非常感谢任何帮助:)

我不确定你想要什么,但这种行为的原因是你的偏移量。

试试这个:

struct ContentView: View {
    var body: some View {
        NavigationView {
            List {
                ForEach(UIFont.familyNames, id: \.self) { name in
                    Text(name)
                }
                }.navigationBarTitle("Title")
            .navigationBarItems(leading:
                HStack {
                    Button(action: {
                        // action
                    }) {
                        HStack {
                        Text("Upcoming")
                        Image(systemName: "chevron.down.circle")
                             .font(.system(size: 21, weight: .regular))
                        //     .offset(x: 169, y: 47)
                             .foregroundColor(Color.orange)
                        }
                    }

            })
        }
    }
}