Published on

ToolBarItemGroup位置关系

Authors
  • Name
    Twitter

什么是ToolBarItemGroup

ToolBarItemGroup 是一个用于将多个 ToolBarItem 组合在一起的容器,可以通过 ToolBarItemGroup 来控制 ToolBar 中的 ToolBarItem 的位置。 其中 ToolBarItemGroup 有以下几种位置:

  1. automatic
  2. principal
  3. navigation
  4. primaryAction
  5. secondaryAction
  6. status
  7. confirmationAction
  8. cancellationAction
  9. destructiveAction
  10. keyboard

他们的位置如下图所示:

ToolBarItemGroup位置

如何使用ToolBarItemGroup

import SwiftUI
// 1. 创建一个ToolBarItemGroup
let group = ToolBarItemGroup {
    // 2. 添加ToolBarItem
    ToolBarItem(placement: .principal) {
        Button("Principal") {
            print("Principal")
        }
    }
    ToolBarItem(placement: .navigation) {
        Button("Navigation") {
            print("Navigation")
        }
    }
    ToolBarItem(placement: .primaryAction) {
        Button("PrimaryAction") {
            print("PrimaryAction")
        }
    }
    ToolBarItem(placement: .secondaryAction) {
        Button("SecondaryAction") {
            print("SecondaryAction")
        }
    }
    ToolBarItem(placement: .status) {
        Button("Status") {
            print("Status")
        }
    }
    ToolBarItem(placement: .confirmationAction) {
        Button("ConfirmationAction") {
            print("ConfirmationAction")
        }
    }
    ToolBarItem(placement: .cancellationAction) {
        Button("CancellationAction") {
            print("CancellationAction")
        }
    }
    ToolBarItem(placement: .destructiveAction) {
        Button("DestructiveAction") {
            print("DestructiveAction")
        }
    }
    ToolBarItem(placement: .keyboard) {
        Button("Keyboard") {
            print("Keyboard")
        }
    }
}

每种位置的作用

  1. automatic 自动位置
  2. principal 主要位置
  3. navigation 导航位置
  4. primaryAction 主要操作位置
  5. secondaryAction 次要操作位置
  6. status 状态位置
  7. confirmationAction 确认操作位置
  8. cancellationAction 取消操作位置
  9. destructiveAction 破坏性操作位置
  10. keyboard 键盘位置

如果我们想让 primaryAction 放在最后面,可以这样做

import SwiftUI
// 1. 创建一个ToolBarItemGroup
let group = ToolBarItemGroup {
    // 2. 添加Spacer,这会让primaryAction放在最后面
    Spacer()

    ToolBarItem(placement: .primaryAction) {
        Button("PrimaryAction") {
            print("PrimaryAction")
        }
    }
}