字体粗细作为SwiftUI中的参数

q35jwt9p  于 2022-12-26  发布在  Swift
关注(0)|答案(2)|浏览(149)

我正在尝试将字体粗细作为参数传递给一个组件(SwiftUI View),然后与Text一起使用。我该怎么做?
我尝试将weight设置为WeightUIFontDescriptor.TraitKey(通过搜索找到),但都不起作用。
例如

let weight: Weight = .bold

init(weight: Weight){
    self.weight = weight
}
luaexgnf

luaexgnf1#

有一个非常快的方法来找出类型。
在SwiftUI视图中,编写如下内容

Text("Hello").fontWeight(.bold)

然后-单击.bold,您将看到

oxcyiej7

oxcyiej72#

编辑:使用@vadian的solution!
我一问这个问题,就想到了一个解决办法:
以字符串形式传递所需重量,例如thin
然后在选择字体时使用函数:

.font(.system(size: 22, weight: getWeight(weight: weight), design: .rounded))
func getWeight(weight: String) -> Font.Weight {
    if weight == "thin" {
        return .thin
    }
    return .bold
}

相关问题