如何在SwiftUI中的WatchOS导航栏下显示带有primaryAction位置的ToolbarItem



我正试图找出如何在用SwiftUI编写的watchOS应用程序的导航栏下隐藏primaryAction ToolbarItem。苹果公司的文件说明

在watchOS中,系统将主要操作置于导航栏下方;用户通过滚动来显示动作。

工具栏放置-主要操作

以下是我正在使用的视图:

var body: some View {
NavigationView {
ScrollView {
VStack(alignment: .leading) {
ForEach(0..<100) {
Text("Row ($0)")
}
}
.toolbar {
ToolbarItem(placement: .primaryAction) {
Button("Settings") {}
}
}
}
}
.navigationTitle("Navigation")
}

主操作按钮始终显示且从不隐藏。我见过一个例子,其中一个使用ScrollViewReader以编程方式更改位置,但我觉得这不是苹果所说的可能,我正在努力理解我做错了什么。苹果的文档还指出,工具栏需要在滚动视图中:

仅在滚动视图中放置工具栏按钮。人们经常滚动到滚动视图的顶部,因此发现工具栏按钮几乎是自动的。将工具栏按钮放置在非滚动视图中可以使其永久可见,从而消除了在不需要时隐藏它的优势。

工具栏按钮watchOS

试试这个:

struct ContentView: View {
var body: some View {
ScrollView {
VStack(alignment: .leading) {
ForEach(0..<100) {
Text("Row ($0)")
}
}
.toolbar {
ToolbarItem(placement: .primaryAction) {
Button("Settings") {}
}
}
.navigationTitle {
Text("Navigation")
}
}
}
}

最新更新