我想有一个应用程序包括一个自定义字体渲染文本,加载它,然后使用它与标准UIKit元素如UILabel。这可能吗?


当前回答

在iOS 8+和Xcode 6+中,你可以很容易地做到这一点。以下是步骤:

1)拖拽你的字体到Xcode支持文件文件夹。不要忘记在添加到目标部分标记你的应用程序。从这一刻起,你可以在IB中使用这种字体,并从字体托盘中选择它。

2)要使此字体在您的设备中可用,请打开您的信息。plist和添加由应用程序键提供的字体。它将包含Item 0键,您必须添加您的字体名称作为值。字体名称可以与您的字体文件名不同。但首先,在大多数情况下,尝试添加您的文件名。

如果没有,这篇文章总是帮助我。

下面是本文中的代码片段,可以帮助您找到字体名称。

func allFonts(){

   for family in UIFont.familyNames(){

       println(family)


       for name in UIFont.fontNamesForFamilyName(family.description)
       {
           println("  \(name)")
       }

   }

}

EDIT

我想说的是,你需要将字体文件添加到你的目标构建阶段,复制捆绑资源。没有它,你将看不到你的字体在设备上。这可能会导致意想不到的行为。

例如,我遇到了一个错误,当UITextField有自定义字体,但这种字体不在复制Bundle资源。当我用这个文本框segue到视图控制器时,在viewDidLoad函数被调用之前有大约4秒的延迟。解决字体问题消除了这种延迟。所以,建议检查两遍。(rdar://20028250) Btw,我无法重现错误,但我确信问题是字体。

其他回答

查找ATSApplicationFontsPath

一个简单的plist条目,允许你在你的应用程序资源文件夹中包括字体文件,他们“只是工作”在你的应用程序中。

您可以在资源文件夹中添加所需的“FONT”文件。然后转到项目信息。plist文件,并使用键“Fonts provided by the application”和值“FONT NAME”。

然后你可以调用方法[UIFont fontwithName:@"FONT NAME" size:12];

我做了一切可能,但新的字体不出现,所以我找到了解决方案:

当你拖动fot文件(otf或ttf)时,不要忘记勾选“添加到目标”下的复选框。

这样做之后,你的字体就会出现,一切都会正常工作。

是的,你可以在你的应用程序中使用自定义字体

按照下面的步骤:

将自定义字体文件添加到项目的支持文件中 为你的信息添加一个键。名为UIAppFonts的plist文件。 将该键设置为数组 对于你拥有的每种字体,输入字体文件的全名(包括扩展名)作为UIAppFonts数组的项 保存Info.plist 现在在你的应用程序中,你可以简单地调用[UIFont fontWithName:@"你的自定义字体名称"大小:20]来获得与你的UILabels一起使用的自定义字体

应用这个后,如果你没有得到正确的字体 然后双击自定义字体,仔细看顶部字体的名字是来的 然后复制这个字体,粘贴到这里[UIFont fontWithName:@" here past your Custom fonts Name" size:20] 我希望你能得到正确答案

在你现有的iOS应用程序上添加一个新的字体是非常容易的。

你只需要添加字体,如font.ttf到你的资源文件夹。

打开应用程序info.plist。添加一个新行作为“Fonts provided by application”,并输入字体名称为font.ttf。

设置字体时执行setFont:"相应字体名称"

你可以通过NSArray *check = [UIFont familyNames];来检查你的字体是否被添加。

它返回应用程序支持的所有字体。