如何在 SwiftUI 中设置 SF 符号的大小?

如何使用 SwiftUI 在 Xcode 11中设置 SF 符号的大小?

50130 次浏览

SF Symbols are similar to fonts, thus:

.font(.system(size: 60))

You can set weights and sizes:

Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .ultraLight))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .thin))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .light))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .regular))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .medium))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .semibold))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .bold))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .heavy))
Image(systemName: "checkmark.circle")
.font(.system(size: 16, weight: .black))

An alternative is to use .imageScale().

Image(systemName: "chevron.left").imageScale(.small)
Image(systemName: "chevron.left").imageScale(.medium)
Image(systemName: "chevron.left").imageScale(.large)

If you want to use frame you can as well:

Image(systemName: "plus")
.resizable()
.scaledToFit()
.frame(width: 24, height: 24)

Since iconographic SF Symbols are deeply integrated into the San Francisco system font (at the moment, we have 4000+ of them), they can be edited using vector graphics tools and can be manipulated habitual way.

var body: some View {
    

Image(systemName: "swift").imageScale(.large)
    

HStack {
// Spacer()
Label("Swift", systemImage: "swift").scaleEffect(2)
// Spacer()
Text("Swift \(Image(systemName: "swift"))").font(.largeTitle)
// Spacer()
}
}

enter image description here