如果我使用的自定义字体仅具有-Regular字体,如何使文本变为斜体?
我使用此扩展名使其变为斜体,但在fontDescriptor部分崩溃:
Deny
用法:
func withTraits(traits:UIFontDescriptor.SymbolicTraits) -> UIFont {
let descriptor = fontDescriptor.withSymbolicTraits(traits)
return UIFont(descriptor: descriptor!, size: 0)
}
func bold() -> UIFont {
return withTraits(traits: .traitBold) }
func italic() -> UIFont {
return withTraits(traits: .traitItalic) }
工具:
答案 0 :(得分:0)
let descriptor = fontDescriptor.withSymbolicTraits(traits)
上面的行返回一个可选字体描述符,这意味着并非所有字体都存在。
我认为您需要在计算机上安装字体家族 Archivo Black 的相应字体样式(斜体)。下载并安装Archivo Black字体斜体变体的 .ttf 文件。
您可以使用类似的方法来避免崩溃。
extension UIFont {
func withTraits(traits: UIFontDescriptor.SymbolicTraits) -> UIFont {
if let descriptor = fontDescriptor.withSymbolicTraits(traits) {
// Initialize a new instance of UIFont with desired symbolic trait if exists
return UIFont(descriptor: descriptor, size: self.pointSize)
}
// Fall back to default version of the font
return self
}
}
答案 1 :(得分:-1)