首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 8自定义字体不会出现在界面生成器中

Xcode 8自定义字体不会出现在界面生成器中
EN

Stack Overflow用户
提问于 2016-10-21 04:17:54
回答 11查看 31.6K关注 0票数 55

我试图在我的iOS应用程序中使用自定义字体(Bebas )。我采取的步骤是:

  1. 将.otf文件复制到项目中。
  2. 确认.otf文件已将项目设置为目标。
  3. 在plist中将.otf文件添加到“应用程序提供的字体”中。
  4. 在构建阶段,.otf文件位于“复制捆绑资源”中。
  5. 在我的Mac上安装字体。
  6. 试着打印出所有可用的字体,但我看不到我的自定义字体。

我使用的代码:

代码语言:javascript
复制
for name in UIFont.familyNames() {
  println(name)
  if let nameString = name as? String
  {
    println(UIFont.fontNamesForFamilyName(nameString))
  }
}
  1. 尝试在代码中设置字体,它就成功了。

我使用的代码:

代码语言:javascript
复制
textLabel?.font = UIFont(name: "BebasNeueRegular", size: 14)
  1. 但我不能在界面构建器中设置它。有什么想法吗?

截图:

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2016-10-21 07:17:20

尝试以下步骤:在Swift 3中测试代码。

步骤1:使用"PermanentMarker.ttf“、"Pecita.otf”和"AROLY.ttf“字体作为测试字体,将自定义字体添加到项目中(确保添加到目标上).I正在使用。

注释:支持字体类型ttfotf (这两种字体类型都可以工作)

步骤2:修改应用程序-info.plist文件。在新行中添加键“应用程序提供的字体”,并在数组“应用程序提供的PermanentMarker.ttf字体”中添加“”作为新项。

您的plist应该如下所示

现在,该字体将在接口生成器中可用。要在代码中使用自定义字体,我们需要按名称引用它,但名称通常与字体的文件名不相同

现在,您可以从您的viewController访问自定义字体。我正在测试字体通过放置一个UIlabel到故事板如下所示。

更新2: Working Solution

之后,导入您的自定义字体并从您的plist.selectlabel中更新您的storyBoard,然后从列表中选择Label>Text type下的goto Attributes Inspector> select to Attributed并选择您的custom font

输出:

更新1

如果您的自定义字体仍未在Xcode font list.check中列出,则链接到您的问题。

注意:仍然可以编程地将BebasNeuecustom font分配到您的标签或按钮等,即使它没有显示在interface Builder.If中--您在为下面的方法设置对象programatically.try字体时遇到了问题。

将字体分配给UILabel:

代码语言:javascript
复制
    label?.font = UIFont(name: "BebasNeue", size: 35) // Set to any size

将字体分配给UIButton:

代码语言:javascript
复制
    button.titleLabel?.font = UIFont(name: "BebasNeue", size: 35)

将字体分配给UITextField:

代码语言:javascript
复制
    textField.font = UIFont(name: "BebasNeue", size: 25) 

将字体分配给UINavigationBar:

代码语言:javascript
复制
    navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "BebasNeue", size: 25)!, NSForegroundColorAttributeName: UIColor.red]

将字体分配给UIToolBar:

代码语言:javascript
复制
    UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "BebasNeue", size: 25.0)!], for: UIControlState.normal)

输出:

票数 64
EN

Stack Overflow用户

发布于 2018-02-22 12:42:19

它现在在Xcode 10和swift 5中进行了简单简单的测试。

将字体添加到Xcode的步骤

然后在“字体”部分下选择您的UILabel、UITextField或其他任何内容,然后按照

步骤1

从字体选择屏幕的左角选择“设置”菜单。并选择字体管理器选项。

步骤2

单击下面标记的“添加”按钮。

步骤3

选择包含字体的文件夹。它将被加载到XCode字体列表中。

将字体添加到项目的步骤

不要忘记用键Fonts provided by application向您的plist添加描述,并将字体文件放在项目目标设置下的复制包资源中。

是!就这样..。njoy.

票数 20
EN

Stack Overflow用户

发布于 2017-01-27 15:59:14

当使用相同的字体(Bebas )时,我遇到了完全相同的问题:字体没有出现在Plain控件的字体列表中。

它适用于Attributed控件,如Joes中的Update2所述,但是实际上您正在更改attributedText而不是常规的text,这可能会导致不必要的行为。例如,您必须在运行时使用NSMutableAttributedString来更改文本或文本颜色。

我对这个问题做了一些调查。我使用FontLab工作室修改字体并进行一些测试。我用的是来自dafont.com的Bebas版本1.400 (日期为2014年9月15日)

  • 也许字体文件被破坏了。重新保存为.otf和.ttf:没有工作.
  • 可能字体的元数据被破坏了。将所有的字形复制到一个新的字体中,并命名为Bebas:无效。
  • 我把字体从Bebas重命名为BN:,但是为什么呢?
  • 也许您不能在字体名称中使用" Neue“(因为Helvetica Neue是iOS系统直到iOS 8的字体)。将字体重命名为Test:仍然有效.
  • 也许你不能用“贝巴斯”作为字体名称?将字体重命名为Bebas:仍然有效.
  • 什么..。可以肯定的是,我将字体名改为Bebas:不再工作了.
  • 我也尝试过BebasNeue:也没有工作。
  • 然后我改名为Bebas,不管是什么:It works.

我真的不明白为何会出现这种情况。苹果或Xcode不希望在Interface中使用"BebasNeue“或”BebasNeue“吗?我安装了普通的贝巴斯纽埃。也许推荐信被破坏了?我真的看不出来。如果Bebas在他们的Xcode中工作,那么一个干净系统上的人也许可以尝试一下。

总之,我实现了我的目标:能够使用Bebas (我将最终版本命名为"Bebas“)作为Plain样式的标签和按钮,这样我就可以按原样来设计我的应用程序了,而不必摆弄带有属性的字符串。

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

https://stackoverflow.com/questions/40168344

复制
相关文章

相似问题

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