當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。