首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Swift中使没有"-Italic“字体文件的文本斜体

在Swift中使没有"-Italic“字体文件的文本斜体
EN

Stack Overflow用户
提问于 2019-10-28 05:51:16
回答 2查看 1K关注 0票数 1

如果我使用的自定义字体只有-Regular字体,我如何使文本变成意大利语?

我使用这个扩展使其为斜体,但它在fontDescriptor部件中崩溃:

代码语言:javascript
复制
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) }

用法:

代码语言:javascript
复制
let s = UIFont(name:"Archivo Black", size: 20.0).italic()
print("Output: ", s)

工具:

  • Device ver: iOS 12.3.1
  • Xcode ver: 10.2.1
  • macOS: 10.14.5
EN

回答 2

Stack Overflow用户

发布于 2019-10-28 09:19:19

代码语言:javascript
复制
let descriptor = fontDescriptor.withSymbolicTraits(traits)

上面的行返回一个可选的字体描述符,这意味着它并不存在于所有字体。

我认为您需要在您的计算机上安装相应的字体样式(斜体),用于字体系列Archivo Black。下载并安装阿奇沃黑色字体斜体的.ttf文件。

你可以用这样的方法来避免坠机。

代码语言:javascript
复制
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
    }
}
票数 0
EN

Stack Overflow用户

发布于 2019-10-28 07:00:10

在故事板中,选择文本视图或标签,并将其类型从纯文本更改为属性,然后选择文本,然后单击它,选择字体,然后在字体下面找到斜体。你可以在这张照片上看到它

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58586278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档