❤️
SwiftUIでSF Symbolsを使いこなす
SF Symbols on SwiftUI
SwiftUIでは簡単にSF Symbolsを使用できます。
Image(systemName: "heart")
レンダリングモードの変更(symbolRenderingMode)
SF Symbolsにはレンダリングモードが4つ用意されており、それぞれで色のパターンが設定可能です。
Image(systemName: "heart.circle.fill")
.symbolRenderingMode(.palette)
.foregroundStyle(.green, .yellow)
Image(systemName: "heart.circle.fill")
.symbolRenderingMode(.multicolor)
Image(systemName: "heart.circle.fill")
.symbolRenderingMode(.hierarchical)
Image(systemName: "heart.circle.fill")
.symbolRenderingMode(.monochrome)
派生の作成(symbolVariant)
普通のheart
にもその後に.
以降にfill
square
rectangle
など派生系(Variant)
があります。
こういったものもコードsymbolVariant
で指定することが可能です。
Image(systemName: "heart")
Image(systemName: "heart")
.symbolVariant(.circle)
.symbolVariant(.fill)
Image(systemName: "heart.circle.fill")
利用例
struct MuteButton: View {
@State var muted = false
var body: some View {
Button {
muted.toggle()
} label: {
Image(systemName: "mic")
.symbolRenderingMode(muted ? .palette : .monochrome)
.foregroundStyle(muted ? .pink : .black, .black)
.symbolVariant(muted ? .slash : .none)
.symbolVariant(.circle)
.font(.system(size: 100))
}
}
}
Discussion