当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional toolbar(content:)用法及代码示例


用法一

实例方法

toolbar(content:)

用指定的项目填充工具栏或导航栏。

声明

func toolbar<Content>(content: () -> Content) -> some View where Content : ToolbarContent

参数

content

表示工具栏内容的项目。

详述

使用此方法可以使用您提供给工具栏视图构建器的视图集合来填充工具栏。

工具栏修饰符需要一个工具栏项目的集合,您可以通过提供一个视图集合来提供这些项目,每个视图都包含在 ToolbarItem 中,或者通过提供一个视图集合作为 ToolbarItemGroup 。下面的示例使用 ToolbarItem 视图的集合来创建支持文本编辑函数的 macOS 工具栏:


struct StructToolbarItemGroupView: View {
    @State private var text = ""
    @State private var bold = false
    @State private var italic = false
    @State private var fontSize = 12.0


    var displayFont: Font {
        let font = Font.system(size: CGFloat(fontSize),
                               weight: bold == true ? .bold : .regular)
        return italic == true ? font.italic() : font
    }


    var body: some View {
        TextEditor(text: $text)
            .font(displayFont)
            .toolbar {
                ToolbarItemGroup {
                    Slider(
                        value: $fontSize,
                        in: 8...120,
                        minimumValueLabel:
                            Text("A").font(.system(size: 8)),
                        maximumValueLabel:
                            Text("A").font(.system(size: 16))
                    ) {
                        Text("Font Size (\(Int(fontSize)))")
                    }
                    .frame(width: 150)
                    Toggle(isOn: $bold) {
                        Image(systemName: "bold")
                    }
                    Toggle(isOn: $italic) {
                        Image(systemName: "italic")
                    }
                }
            }
            .navigationTitle("My Note")
    }
}

虽然这不是强制性的,但将一组相关的工具栏项包装在 ToolbarItemGroup 中可提供控件和工具栏项之间的一对一映射,从而在每个平台上产生正确的布局和间距。有关 macOS 应用程序工具栏的设计指南,请参阅 macOS 人机接口指南 > Toolbars。有关 iOS 应用程序工具栏的设计指南,请参阅 iOS 人机接口指南 > Toolbars

可用版本

iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Mac Catalyst 14.0+, tvOS 14.0+, watchOS 7.0+

用法二

实例方法

toolbar(content:)

使用您提供的视图填充工具栏或导航栏。

声明

func toolbar<Content>(content: () -> Content) -> some View where Content : View

参数

content

表示工具栏内容的视图。

详述

使用此修饰符将内容添加到工具栏。工具栏修饰符需要一个工具栏项的集合,您可以通过提供一个包含在 ToolbarItem 中的每个视图的视图集合,或者提供一个作为 ToolbarItemGroup 的视图集合来提供。下面的示例将视图添加到使用工具栏项组以支持文本编辑函数:


struct StructToolbarItemGroupView: View {
    @State private var text = ""
    @State private var bold = false
    @State private var italic = false
    @State private var fontSize = 12.0


    var displayFont: Font {
        let font = Font.system(size: CGFloat(fontSize),
                               weight: bold == true ? .bold : .regular)
        return italic == true ? font.italic() : font
    }


    var body: some View {
        TextEditor(text: $text)
            .font(displayFont)
            .toolbar {
                ToolbarItemGroup {
                    Slider(
                        value: $fontSize,
                        in: 8...120,
                        minimumValueLabel:
                            Text("A").font(.system(size: 8)),
                        maximumValueLabel:
                            Text("A").font(.system(size: 16))
                    ) {
                        Text("Font Size (\(Int(fontSize)))")
                    }
                    .frame(width: 150)
                    Toggle(isOn: $bold) {
                        Image(systemName: "bold")
                    }
                    Toggle(isOn: $italic) {
                        Image(systemName: "italic")
                    }
                }
            }
            .navigationTitle("My Note")
    }
}

可用版本

iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Mac Catalyst 14.0+, tvOS 14.0+, watchOS 7.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional toolbar(content:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。