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

bgibtngc  于 2022-11-21  发布在  Swift
关注(0)|答案(8)|浏览(162)

我有这个

Image(systemName: "arrow.right")

但我如何使它粗体,半粗体等?
我正在使用新的SwiftUI。

jutyujz0

jutyujz01#

使用font修饰符时,为要传递的字体设置一个权重。
例如,如果您要使用其中一种默认文本样式(我建议您这样做,因为它们会适应用户的“动态类型”设置),您可以这样做:

Image(systemName: "arrow.right")
  .font(Font.title.weight(.ultraLight))

如果要指定字体大小,可以按如下方式进行:

Image(systemName: "arrow.right")
  .font(Font.system(size: 60, weight: .ultraLight))
6ovsh4lw

6ovsh4lw2#

对于UIKit,符号可配置如下:

UIImage(systemName: "arrow.right",
        withConfiguration: UIImage.SymbolConfiguration(pointSize: 16, weight: .bold))
5n0oy7gb

5n0oy7gb3#

快速用户界面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))
}

2admgd59

2admgd594#

UIKit --斯威夫特5 --X代码11

如果你想设置权重(这样你就不会搞砸自动图标大小调整),请执行以下操作:

let configuration = UIImage.SymbolConfiguration(weight: .semibold)
UIImage(systemName: "trash", withConfiguration: configuration)
nfg76nw0

nfg76nw05#

你也可以用Text Package Image,这样你就可以使用fontWeight()并将其赋值给Text

Text(Image(systemName: "xmark"))
    .fontWeight(.semibold)
dgtucam1

dgtucam16#

UIKit SWIFT 5.x版

要设置其属性,请执行以下操作:创建一个配置,然后将其作为参数传入:

let imageConfig = UIImage.SymbolConfiguration(pointSize: 22, weight: .black, scale: .large)
let image = UIImage(systemName: "delete.right", withConfiguration: imageConfig)
cigdeys3

cigdeys37#

Xcode 13.4、快速移动5.X

import UIKit
import SwiftUI

public extension Image {
    
    @available(iOS 13.0, *)
    static func buildSystemImage(named systemName: String, weightConfiguration: UIImage.SymbolWeight) -> Image? {
        guard let imageConfig = UIImage(systemName: systemName, withConfiguration: UIImage.SymbolConfiguration(weight: weightConfiguration)) else { return nil }
        return Image(uiImage: imageConfig)
    }
}

用法:

if let systemImage = Image.buildSystemImage(named: "arrow.left", weightConfiguration: .semibold) {
    // Your code.                
}
pvabu6sv

pvabu6sv8#

对于iOS 16,您可以直接在Image()上使用fontWeight()。

Image(systemName: "chevron.right")
    .fontWeight(.semibold)

相关问题