如何为iOS 13的SF符号设置权重?

iOS*_*com 16 ios swift swiftui sf-symbols

我有这个

Image(systemName: "arrow.right")
Run Code Online (Sandbox Code Playgroud)

但是我如何使其变为粗体,半粗体等?

我正在使用新的SwiftUI。

Flo*_*lke 27

您也可以用 包裹Image起来Text。这样您就可以使用并将其分配fontWeight()Text

Text(Image(systemName: "xmark"))
    .fontWeight(.semibold)
Run Code Online (Sandbox Code Playgroud)


Emi*_*aez 25

使用font修饰符时,为要传递的字体设置权重

Image(systemName: "arrow.right")
  .font(Font.title.weight(.ultraLight))
Run Code Online (Sandbox Code Playgroud)


Tre*_*v14 10

UIKit -- Swift 5 -- Xcode 11

如果你只是想设置的权重(这样你就不会弄乱自动图标大小),这样做:

let configuration = UIImage.SymbolConfiguration(weight: .semibold)
UIImage(systemName: "trash", withConfiguration: configuration)
Run Code Online (Sandbox Code Playgroud)


sob*_*bri 10

对于 iOS 16.0、macOS 13.0、tvOS 16.0、watchOS 9.0,您可以fontWeight()直接在Image().

Image(systemName: "chevron.right")
    .fontWeight(.semibold)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!这是 iOS 16.0+ 的最佳答案 (3认同)

Gar*_*ted 9

UIKit SWIFT 5.x

要设置它们的属性:创建一个配置,然后将其作为参数传入:

let imageConfig = UIImage.SymbolConfiguration(pointSize: 22, weight: .black, scale: .large)
let image = UIImage(systemName: "delete.right", withConfiguration: imageConfig)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ens 8

SwiftUI 1.0

我只想提及如何更改粗细以及自定义字体大小。

HStack(spacing: 40) {
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .ultraLight))
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .light))
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .regular))
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .bold))
}
Run Code Online (Sandbox Code Playgroud)

字体大小和粗细示例

  • 我认为这应该是公认的答案,因为问题是处理 SwiftUI 并且它设置了 `.system` 字体而不是 `.title` ← 这可能会干扰其他样式。 (2认同)

Hej*_*azi 7

对于UIKit,可以按以下方式配置符号:

UIImage(systemName: "arrow.right",
        withConfiguration: UIImage.SymbolConfiguration(pointSize: 16, weight: .bold))
Run Code Online (Sandbox Code Playgroud)