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


Swift Optional symbolVariant(_:)用法及代码示例


实例方法

symbolVariant(_:)

使视图中的符号显示特定变体。

声明

func symbolVariant(_ variant: SymbolVariants) -> some View

返回值

将指定符号变体或多个变体应用于自身及其子视图的视图。

参数

variant

用于符号的变体。使用 SymbolVariants 中的值。

详述

如果您希望应用程序用户接口的一部分中的所有 SF Symbols 使用相同的变体,请使用带有 SymbolVariants 值的 symbolVariant(_:) 修饰符,例如 SymbolVariants/fill-swift.type.property


VStack(spacing: 20) {
    HStack(spacing: 20) {
        Image(systemName: "person")
        Image(systemName: "folder")
        Image(systemName: "gearshape")
        Image(systemName: "list.bullet")
    }


    HStack(spacing: 20) {
        Image(systemName: "person")
        Image(systemName: "folder")
        Image(systemName: "gearshape")
        Image(systemName: "list.bullet")
    }
    .symbolVariant(.fill) // Shows filled variants, when available.
}

没有指定变体的符号不受影响。在上面的示例中,list.bullet 符号没有填充变量,因此 symbolVariant(_:) 修饰符无效。

如果你多次应用修改器,它的效果会累积。或者,您可以在一次调用中应用多个变体:


Label("Airplane", systemImage: "airplane.circle.fill")


Label("Airplane", systemImage: "airplane")
    .symbolVariant(.circle)
    .symbolVariant(.fill)


Label("Airplane", systemImage: "airplane")
    .symbolVariant(.circle.fill)

上面代码中的所有标签都产生相同的输出:

您可以按任何顺序应用所有这些变体,但如果应用多个形状变体,则最接近符号的变体优先。例如,下图使用 SymbolVariants/square-swift.type.property 形状:


Image(systemName: "arrow.left")
    .symbolVariant(.square) // This shape takes precedence.
    .symbolVariant(.circle)
    .symbolVariant(.fill)

要使符号忽略当前环境中的变体,请使用 View/environment(_:_:) 修饰符直接将 EnvironmentValues/symbolVariants 环境值设置为 SymbolVariants/none

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

相关用法


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