ios - 在 swift 代码中找不到 SF Pro Text Medium 字体

标签 ios swift storyboard xcode9 swift4.1

我正在使用 xCode 9.3.1 和 Swift 4.1。

我正在尝试以编程方式在我的应用程序代码中使用 SF Pro Text Medium 字体。但是在 swift 文件的源代码中没有找到这种字体,应用程序崩溃了。

代码如下: NSAttributedStringKey.font:UIFont(名称:“.SFProText-Medium”,大小:24.0)!

运行时会抛出以下错误: fatal error :解包可选值时意外发现 nil

任何其他标准字体作品。

Storyboard中提供了这种字体,并且我已经成功使用了它。

为什么它不能以编程方式工作?我是否必须将其添加到 xCode(plist 等)中才能使其工作?

最佳答案

按照以下步骤操作,看看是否适合您:


1) 将字体文件添加到您的项目

2) 在 info.plist 中,按顶部信息属性列表 旁边的加号按钮。输入应用程序提供的字体(它应该自动为您完成)。添加您的字体文件,如下所示:

this

3) 按左侧菜单上的项目,然后转到 Build Phases 并将字体文件添加到显示 Copy Bundle Sources

的位置

如果您不确定字体的名称,请打印所有字体,直到找到字体的名称。在 viewDidLoad 中运行它

UIFont.familyNames.forEach({ familyName in
    let fontNames = UIFont.fontNames(forFamilyName: familyName)
    print(familyName, fontNames)
})

关于ios - 在 swift 代码中找不到 SF Pro Text Medium 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339896/

相关文章:

objective-c - MPMoviePlayerController 控件在 UIModalPresentationFormSheet 样式模式中打开并且用户使视频全屏时

ios - 如何提示用户在 AppDelegate 之外接受推送通知?

iphone - 我如何更改 Core Graphics 中 CALayer 的填充颜色?

swift - 无法选择我添加到屏幕的暂停按钮

swift - SpriteKit : why node in collision has category bit mask of 4294967295 when this category was never assigned to a node

macos - NSPanel 在 Xcode 8 中被删除?

iphone - 如何从 XIB 文件加载 Storyboard ?

ios - NSCondition 或 @synchronized

ios - Swift:UIPanGestureRecognizer 如何判断是否在屏幕外使用拖动手指

ios - 无法使具有标识符 Cell 的单元格出列 - 必须为标识符注册一个 nib 或一个类,或者在 Storyboard中连接一个原型(prototype)单元格?