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


Swift Never 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大神的英文原創作品 Never symbolVariant(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。