首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义字体Bug

自定义字体Bug
EN

Stack Overflow用户
提问于 2017-10-06 11:35:11
回答 2查看 887关注 0票数 3

TL;DR:在童话板/xib.中使用自定义字体之前不能以编程方式使用它们

注意:我检查了https://stackoverflow.com/questions/46303443/xcode-9-custom-fonts-not-working,尝试了答案,但它们没有起作用。我还确保他们是目标会员。

我注意到了一个奇怪的错误,在更改段控制标题(一种自定义字体)时:

代码语言:javascript
复制
segmentedControl.titleTextAttributes = NSDictionary(objects: [UIFont.init(name: "Comfortaa-Regular",
                                                                          size: UIFont.systemFontSize)!,
                                                              UIColor.white],
                                                    forKeys: [NSAttributedStringKey.font as NSCopying,
                                                              NSAttributedStringKey.foregroundColor as NSCopying]) as? [AnyHashable : Any]

它找不到字体,所以展开失败了。但字体可以在故事板上看到。

它正确地添加到项目中,下面是CopyBundle和InfoList:

下面是问题所在;如果我在故事板中使用它,它将显示在字体系列中:

但是如果没有,它就没有显示-here,我已经更改为light,粗体已经消失了,并且不能以编程的方式使用。

我使用的是Xcode版本9.0 (9A235)和Swift 4。我还检查了OpenRadar,无法找到关于这方面的提交。

提到的字体:康福塔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-15 18:21:14

@EDUsta,我只是试着用给定的字体,它的工作还好,没有问题,给出了我遵循的步骤:

  1. 向项目中添加Comfortaa-Bold.ttfComfortaa-Light.ttfComfortaa-Regular.ttf字体文件。

2.在info.plist文件中添加字体条目

确保在项目目标中添加的字体。

之后,使用下面给出的UILabelUISegmentedControl代码在SwiftSwift上应用字体:

代码语言:javascript
复制
   let fontFirst = UIFont(name: "Comfortaa-Bold", size: 16.0)!
    segmentFont.setTitleTextAttributes([NSAttributedStringKey.font : fontFirst, NSAttributedStringKey.foregroundColor : UIColor.red],
                                       for: .normal)

    labelBold.font = UIFont(name: "Comfortaa-Bold", size: 16.0)
    labelLight.font = UIFont(name: "Comfortaa-Light", size: 16.0)
    labelRegular.font = UIFont(name: "Comfortaa-Regular", size: 16.0)

它的工作非常完美,您可以在下面的屏幕截图图像中签入:

供您参考,我将添加完整的项目这里:

票数 2
EN

Stack Overflow用户

发布于 2018-01-15 16:21:09

我也有同样的问题。我无法通过编程添加完全相同的字体系列(Comfortaa) --每次都会崩溃,但一旦我在启动屏幕中添加标签并将字体设置为Comfotaa,从代码加载的字体工作正常,不会崩溃。因此,我的解决方案是添加3个标签的字体,如- Comfortaa,Comfortaa正则,Comfortaa在启动屏幕和设置“隐藏”标志的真。这样,我就可以编程地使用它们了。

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

https://stackoverflow.com/questions/46604829

复制
相关文章

相似问题

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