SwiftUI 教程

SwiftUI - 主页 SwiftUI - 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI - 环境设置 SwiftUI - 基本组件 SwiftUI - 构建第一个应用程序

SwiftUI 视图

SwiftUI - 视图 SwiftUI - 自定义文本视图 SwiftUI - 自定义图像视图 SwiftUI - 堆栈

SwiftUI 绘制形状

SwiftUI - 形状 SwiftUI - 绘制线条 SwiftUI - 绘制矩形 SwiftUI - 绘制圆角矩形 SwiftUI - 绘制三角形 SwiftUI - 绘制圆形 SwiftUI - 绘制星形 SwiftUI - 绘制多边形 SwiftUI - 绘制饼图 SwiftUI - 使用内置形状

SwiftUI - 文本

SwiftUI - 文本视图 SwiftUI - 文本输入和输出

SwiftUI - 颜色

SwiftUI - 颜色 SwiftUI - 颜色选择器 SwiftUI - 渐变 SwiftUI - 调整颜色

SwiftUI - 效果

SwiftUI - 效果 SwiftUI - 混合效果 SwiftUI - BLur 效果 SwiftUI - 阴影效果 SwiftUI - 悬停效果

SwiftUI - 动画

SwiftUI - 动画 SwiftUI - 创建动画 SwiftUI - 创建显式动画 SwiftUI - 多个动画 SwiftUI - 过渡 SwiftUI - 不对称过渡 SwiftUI - 自定义过渡

SwiftUI - 图像

SwiftUI - 图像 SwiftUI - 图像作为背景 SwiftUI - 旋转图像 SwiftUI - 媒体

SwiftUI - 视图布局

SwiftUI - 视图布局 SwiftUI - 视图大小 SwiftUI - 视图间距 SwiftUI - 视图填充

SwiftUI - UI 控件

SwiftUI - UI 控件 SwiftUI - 按钮 SwiftUI - 复选框 SwiftUI - 菜单栏 SwiftUI - 工具栏 SwiftUI - 搜索栏 SwiftUI - 文本字段 SwiftUI - 滑块 SwiftUI - 切换 SwiftUI - 选择器 SwiftUI - 菜单

SwiftUI - 列表 &表格

SwiftUI - 列表 SwiftUI - 静态列表 SwiftUI - 动态列表 SwiftUI - 自定义列表 SwiftUI - 表格

SwiftUI - 表单

SwiftUI - 表单 SwiftUI - 在部分中拆分表单

SwiftUI - 事件处理

SwiftUI - 事件处理 SwiftUI - 手势 SwiftUI - 剪贴板 SwiftUI - 拖放 SwiftUI - 焦点 SwiftUI - 警报

SwiftUI - 杂项

SwiftUI - 容器 SwiftUI - 导航 SwiftUI - 通知 SwiftUI - 跨平台 UI SwiftUI - 数据 SwiftUI - 可访问性

SwiftUI - 框架集成

SwiftUI - 框架集成 SwiftUI - 与 UIKit 交互 SwiftUI - 创建 macOS 应用

SwiftUI 有用资源

SwiftUI - 有用资源 SwiftUI - 讨论


SwiftUI - ToolBar 工具栏

Toolbar 是 SwiftUI 中的 UI 控件,用于在应用程序的顶部或底部创建一个包含按钮、标题、菜单或其他项目的栏。它提供了一种最方便的方式,可以在当前视图上的栏中一起显示多个控件。

通常,工具栏与导航视图(如 NavigationView 或 NavigationStack)一起使用,以增强用户体验。工具栏 UI 控件通常适用于 iOS、macOS 和 watchOS。

在 SwiftUI 中创建 ToolBar

在 SwiftUI 中,我们可以借助 toolbar() 方法创建工具栏。此方法使用给定的元素创建一个工具栏,我们可以借助 ToolbarItem 或 ToolbarItemGroup 在工具栏中添加元素。

ToolbarItem 每次在工具栏中添加一个元素,而 ToolbarItemGroup 每次在指定的工具栏中添加多个元素。工具栏可以包含各种 UI 组件,例如按钮、滑块、切换按钮等。

语法

以下是语法 −

Toolbar{
   ToolbarItem(placement: ToolbarItemPlacement){
      //code
   }
   ToolbarItemGroup{
      //code
   }   
}

我们还可以借助 placement 参数调整工具栏中元素的位置。它提供各种类型的位置,例如 .automatic、.topBarLeading、toBarTrailing、.buttonBar 等。

示例 1

以下 SwiftUI 程序创建一个带有一个按钮的工具栏。

import SwiftUI

struct ContentView: View {
   var body: some View {
      NavigationView {
         Text("SwiftUI")
            .navigationTitle("Toolbar")
         
            // 带有单个按钮的工具栏
            .toolbar {
               ToolbarItem(placement: .navigationBarTrailing) {
                  Button(action: {
                     print("Button tapped!")
                  }) {
                     Image(systemName: "plus").font(.largeTitle)
                  }.background(.blue).foregroundStyle(.white)
               }
            }
      }
   }
}
#Preview {
   ContentView()
}   

输出

Toolbar

示例 2

以下 SwiftUI 程序创建一个工具栏,其中包含多个元素,例如系统图像、按钮、切换和滑块。

import SwiftUI

struct ContentView: View {
   @State private var value1: Double = 5
   @State private var value2: Bool = true

   var body: some View {
      NavigationView {
         Text("TutorialsPoint")
            .font(.title)
            .toolbar {
               // Leading item
               ToolbarItem(placement: .navigationBarLeading) {
                  Button(action: {
                     print("Leading button tapped!")
                  }) {
                     Image(systemName: "chevron.left")
                  }
               }
               
               // Trailing item 1 - Slider
               ToolbarItem(placement: .navigationBarTrailing) {
                  Slider(value: $value1, in: 0...10)
                     .frame(width: 150)
               }
               
               // Trailing item 2 - Toggle
               ToolbarItem(placement: .navigationBarTrailing) {
                  Toggle("On/Off", isOn: $value2)
                     .padding()
               }
               
               // Trailing item 3 - Button
               ToolbarItem(placement: .navigationBarTrailing) {
                  Button(action: {
                     print("Trailing button tapped!")
                  }) {
                     Image(systemName: "gear")
                  }
               }
               
            }
      }
   }
}
#Preview {
   ContentView()
}   

输出

Toolbar