首页 > 解决方案 > 如何在 SwiftUI 中的 WatchOS 导航栏下显示具有 primaryAction 位置的 ToolbarItem

问题描述

我试图弄清楚如何在用 SwiftUI 编写的 watchOS 应用程序的导航栏下隐藏 primaryAction ToolbarItem。苹果的文档状态

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

ToolbaritemPlacement - primaryAction

这是我正在使用的视图:

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

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

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

工具栏按钮 watchOS

标签: swiftuiwatchos

解决方案


推荐阅读