美文网首页
SwiftUI-Toolbars

SwiftUI-Toolbars

作者: xiaofu666 | 来源:发表于2023-03-01 11:27 被阅读0次

Toolbars

提供对常用命令和控件的即时访问。

系统可能会在应用程序内容的上方或下方显示工具栏,具体取决于平台和上下文。通过将toolbar(content:)视图修饰符应用于应用程序中的视图,将项目添加到工具栏中。您还可以使用视图修饰符配置工具栏。例如,您可以使用工具toolbar(_:for:)修饰符设置工具栏的可见性。

填充工具栏

func toolbar<Content>(content: () -> Content) -> some View
用您提供的视图填充工具栏或导航栏。
func toolbar<Content>(content: () -> Content) -> some View
用指定的项目填充工具栏或导航栏。
struct ToolbarItem
代表可以放置在工具栏或导航栏中的项目的模型。
struct ToolbarItemGroup
代表一组ToolbarItem的模型,可以放置在工具栏或导航栏中。
struct ToolbarItemPlacement
定义工具栏项目位置的结构。
protocol ToolbarContent
符合类型表示可以放置在工具栏中不同位置的项目。
struct ToolbarContentBuilder
从多表达式闭包构造工具栏项集。

填充可自定义的工具栏

func toolbar<Content>(id: String, content: () -> Content) -> some View
用指定的项目填充工具栏或导航栏,允许用户自定义。
protocol CustomizableToolbarContent
符合类型表示可以在可自定义工具栏中放置在不同位置的项目。
struct ToolbarCustomizationBehavior
可自定义工具栏内容的自定义行为。
struct ToolbarCustomizationOptions
影响可自定义工具栏内容的默认自定义行为的选项。

设置工具栏可见性

func toolbar(Visibility, for: ToolbarPlacement...) -> some View
指定由SwiftUI管理的条的可见性。
struct ToolbarPlacement
工具栏的位置。

指定工具栏内容的作用

func toolbarRole(ToolbarRole) -> some View
为填充工具栏的内容配置语义角色。
struct ToolbarRole
填充工具栏的内容的目的。

工具栏样式

func toolbarBackground<S>(S, for: ToolbarPlacement...) -> some View
指定由SwiftUI管理的条形背景的首选形状样式。
func toolbarBackground(Visibility, for: ToolbarPlacement...) -> some View
指定由SwiftUI管理的栏上背景的首选可见性。
func toolbarColorScheme(ColorScheme?, for: ToolbarPlacement...) -> some View
指定由SwiftUI管理的条形图的首选配色方案。
func windowToolbarStyle<S>(S) -> some Scene
设置此场景中定义的工具栏的样式。
protocol WindowToolbarStyle
窗口工具栏的外观和行为规范。

设置工具栏标题菜单

func toolbarTitleMenu<C>(content: () -> C) -> some View
配置工具栏的标题菜单。
struct ToolbarTitleMenu
工具栏的标题菜单。

ToolbarItem

代表可以放置在工具栏或导航栏中的项目的模型。

创建工具栏

init(placement: ToolbarItemPlacement, content: () -> Content)
创建具有指定位置和内容的工具栏项。
当ID为()并且Content符合View时可用。

支持类型

var id: ID
与此实例关联的实体的稳定身份。
当ID符合Hashable和Content符合View时可用。
var id: ObjectIdentifier
与此实例关联的实体的稳定身份。
typealias Body
代表此工具栏内容主体的内容类型。

初始化器

init(id: String, placement: ToolbarItemPlacement, content: () -> Content)
创建具有指定位置和内容的工具栏项,允许用户自定义。
当ID为String且Content符合View时可用。

符合

CustomizableToolbarContent
当ID是String,Content符合View时,符合。
Identifiable
ToolbarContent
当ID是String,Content符合View时,符合。

ToolbarItemGroup

代表一组ToolbarItem的模型,可以放置在工具栏或导航栏中。

创建工具栏项目组

init(placement: ToolbarItemPlacement, content: () -> Content)
创建具有指定位置和内容的工具栏项目组。
init<C, L>(placement: ToolbarItemPlacement, content: () -> C, label: () -> L)
创建一个工具栏项目组,其中包含指定的位置、内容和描述该内容的标签。
当Content符合View时可用。

支持类型

typealias Body
代表此工具栏内容主体的内容类型。
struct LabeledToolbarItemGroupContent
表示具有指定标签的工具栏项目组视图的视图。

符合

ToolbarContent

ToolbarItemPlacement

定义工具栏项目位置的结构。

有两种类型的安置:

  • 语义放置,如principalnavigation,表示要添加的项目的意图。SwiftUI根据此意图及其周围上下文(如当前平台)确定项目的适当位置。

  • 位置放置,如navigation,表示物品的精确放置,通常用于特定平台。

在iOS、iPadOS和macOS中,系统在确定要在工具栏中渲染的项目数量时使用工具栏的可用空间。如果不是所有项目都适合可用空间,则可以创建溢出菜单,其余项目将放在该菜单中。

获得语义放置

static let automatic: ToolbarItemPlacement
系统会自动放置项目,这取决于许多因素,包括平台、大小类别或其他项目的存在。
static let principal: ToolbarItemPlacement
系统将项目放在主项目部分。
static let status: ToolbarItemPlacement
该项目表示当前上下文的状态变化。

为特定行动获得安置

static let primaryAction: ToolbarItemPlacement
该项目代表一个主要操作。
static let secondaryAction: ToolbarItemPlacement
该项目代表次要操作。
static let confirmationAction: ToolbarItemPlacement
该项目表示模态接口的确认操作。
static let cancellationAction: ToolbarItemPlacement
该项表示模态接口的取消操作。
static let destructiveAction: ToolbarItemPlacement
该项代表模态接口的破坏性动作。
static let navigation: ToolbarItemPlacement
该项目代表导航操作。

获得明确的放置

static let navigationBarLeading: ToolbarItemPlacement
将项目放在导航栏的前沿。
static let navigationBarTrailing: ToolbarItemPlacement
将项目放在导航栏的后缘。
static let keyboard: ToolbarItemPlacement
该项目被放置在键盘部分。
static let bottomBar: ToolbarItemPlacement
将项目放在底部工具栏中。

创建位置

init<ID>(id: ID)
创建自定义工具栏项目位置。

ToolbarContentBuilder

从多表达式闭包构造工具栏项集。

构建工具栏内容

static func buildBlock<Content>(Content) -> some ToolbarContent
static func buildBlock<C0, C1>(C0, C1) -> some ToolbarContent
static func buildBlock<C0, C1, C2>(C0, C1, C2) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3>(C0, C1, C2, C3) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3, C4>(C0, C1, C2, C3, C4) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5>(C0, C1, C2, C3, C4, C5) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6>(C0, C1, C2, C3, C4, C5, C6) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7>(C0, C1, C2, C3, C4, C5, C6, C7) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8>(C0, C1, C2, C3, C4, C5, C6, C7, C8) -> some ToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9) -> some ToolbarContent

构建可定制的工具栏内容

static func buildBlock<Content>(Content) -> some CustomizableToolbarContent
static func buildBlock<C0, C1>(C0, C1) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2>(C0, C1, C2) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3>(C0, C1, C2, C3) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3, C4>(C0, C1, C2, C3, C4) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5>(C0, C1, C2, C3, C4, C5) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6>(C0, C1, C2, C3, C4, C5, C6) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7>(C0, C1, C2, C3, C4, C5, C6, C7) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8>(C0, C1, C2, C3, C4, C5, C6, C7, C8) -> some CustomizableToolbarContent
static func buildBlock<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9) -> some CustomizableToolbarContent

构建条件工具栏内容

static func buildIf<Content>(Content?) -> Content?
static func buildIf<Content>(Content?) -> Content?
static func buildEither<TrueContent, FalseContent>(first: TrueContent) -> _ConditionalContent<TrueContent, FalseContent>
static func buildEither<TrueContent, FalseContent>(first: TrueContent) -> _ConditionalContent<TrueContent, FalseContent>
static func buildEither<TrueContent, FalseContent>(second: FalseContent) -> _ConditionalContent<TrueContent, FalseContent>
static func buildEither<TrueContent, FalseContent>(second: FalseContent) -> _ConditionalContent<TrueContent, FalseContent>
static func buildLimitedAvailability<Content>(Content) -> some ToolbarContent
static func buildLimitedAvailability<Content>(Content) -> some CustomizableToolbarContent

类型方法

static func buildExpression<Content>(Content) -> Content
在构建器中构建一个表达式。
static func buildExpression<Content>(Content) -> Content
在构建器中构建一个表达式。

ToolbarCustomizationBehavior

可自定义工具栏内容的自定义行为。

可定制的工具栏内容支持不同类型的自定义行为。例如,一些可自定义的内容可能不会被用户删除。一些内容可能会被放置在整体支持自定义的工具栏中,但不适用于该特定内容。

将此类型与customizationBehavior(_:)修饰符一起使用。

类型属性

static var `default`: ToolbarCustomizationBehavior
默认自定义行为。
static var disabled: ToolbarCustomizationBehavior
禁用的自定义行为。
static var reorderable: ToolbarCustomizationBehavior
可重新排序的自定义行为。

ToolbarCustomizationOptions

影响可自定义工具栏内容的默认自定义行为的选项。

将此类型与CustomizableContent/defaultCustomization(_:options)修饰符结合使用。

初始化器

init(rawValue: Int)
从给定的原始值创建一个新的选项集。

实例属性

var rawValue: Int
原始类型的相应值。

类型别名

typealias ArrayLiteralElement
数组文字的元素类型。
typealias Element
选项集的元素类型。
typealias RawValue
可用于表示符合类型的所有值的原始类型。

类型属性

static var alwaysAvailable: ToolbarCustomizationOptions
将默认的可自定义工具栏内容配置为始终存在于工具栏中。

ToolbarPlacement

工具栏的位置。

使用此类型与toolbarBackground(_:for:)toolbar(_:for:)等修饰符结合使用,自定义SwiftUI管理的不同条的外观。并非所有酒吧都支持所有类型的定制。

请参阅Toolbar,了解您可以将自己的控件放入这些工具栏的不同区域。

获得安置

static var automatic: ToolbarPlacement
主要工具栏。
static var bottomBar: ToolbarPlacement
应用程序的底部工具栏。
static var navigationBar: ToolbarPlacement
应用程序的导航栏。
static var tabBar: ToolbarPlacement
应用程序的选项卡栏。
static var windowToolbar: ToolbarPlacement
应用程序的窗口工具栏。

创建位置

init<ID>(id: ID)
创建自定义工具栏位置。

ToolbarRole

填充工具栏的内容的目的。

工具栏角色提供了填充工具栏的内容目的的描述。内容的目的会影响工具栏渲染内容的方式。例如,browser将自动对齐iPadOS中工具栏的标题。

将此类型提供给toolbarRole(_:)修饰符:

ContentView()
    .navigationTitle("Browser")
    .toolbarRole(.browser)
    .toolbar {
        ToolbarItem(placement: .primaryAction) {
            AddButton()
        }
     }

特定行为的角色

static var browser: ToolbarRole
浏览器角色。
static var editor: ToolbarRole
编辑角色。
static var navigationStack: ToolbarRole
navigationStack角色。
自动角色
static var automatic: ToolbarRole
自动角色。

ToolbarTitleMenu

工具栏的标题菜单。

标题菜单表示可以在应用程序的工具栏或导航标题所代表的内容上完成的常见功能。此菜单可以从应用程序的命令(如saveprintItem中填充。

ContentView()
    .toolbar {
        ToolbarTitleMenu()
    }

您可以提供自己的一组操作来覆盖此行为。

ContentView()
    .toolbar {
        ToolbarTitleMenu {
            DuplicateButton()
            PrintButton()
        }
    }

在iOS和iPadOS中,这将构建一个菜单,可以通过点击应用程序导航栏中的导航标题来显示。

初始化器

init()
创建一个工具栏标题菜单,从应用程序命令中推断操作。
init(content: () -> Content)
创建工具栏标题菜单。

类型别名

typealias Body
代表此工具栏内容主体的内容类型。

相关文章

  • SwiftUI-Toolbars

    Toolbars 提供对常用命令和控件的即时访问。 系统可能会在应用程序内容的上方或下方显示工具栏,具体取决于平台...

网友评论

      本文标题:SwiftUI-Toolbars

      本文链接:https://www.haomeiwen.com/subject/yquhldtx.html