Objective c iPhone开发:如何使用自定义字体?

Objective c iPhone开发:如何使用自定义字体?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我在photoshop设计中使用了一种特殊的字体 是否可以在iphone应用程序中本机使用这些字体?或 我需要先将它们转换为图像吗 如果这是唯一的方法,那么如何处理动态文本 是的,这在iOS 3.2及更高版本中是可能的。你需要有字体文件,我忘了确切的格式。将字体文件作为资源添加到项目中,然后在原始键“UIAppFonts”或友好键“fonts by application”下的数组中的applications info.plist中添加字体名称 下面是一个示例应用程序,您可以查看-。它打印出应用

我在photoshop设计中使用了一种特殊的字体

  • 是否可以在iphone应用程序中本机使用这些字体?或

  • 我需要先将它们转换为图像吗

  • 如果这是唯一的方法,那么如何处理动态文本


  • 是的,这在iOS 3.2及更高版本中是可能的。你需要有字体文件,我忘了确切的格式。将字体文件作为资源添加到项目中,然后在原始键“UIAppFonts”或友好键“fonts by application”下的数组中的applications info.plist中添加字体名称

    下面是一个示例应用程序,您可以查看-。它打印出应用程序可以访问的所有字体。添加了两种字体Flames和Firestarter

    这是迄今为止向应用程序添加自定义字体的最简单方法。如果您需要支持4.0之前的iOS自定义字体,请参阅

    在此之前曾提出过此问题:

    其中“MyFont”是项目中的TrueType或OpenType文件(无文件扩展名),label是UILabel的实例

  • 将字体文件复制到资源中

  • 在应用程序中.plist创建(如果存在,只需创建一行)一个名为“应用程序提供的字体”的行,然后在“项目0”中复制字体名称,例如“Ciutadella Bold.otf”(如果字体名称中有一些空格,请将其重命名,例如将所有空格替换为负“-”)

  • 然后,您可以在应用程序中定义此字体:

    UIFont *CiutadellaBold = [UIFont fontWithName:@"Ciutadella-Bold" size:17.0f];
    
  • 并在uiLabel中使用:

    [uiLabel setFont:CiutadellaBold];
    
  • 注:


    “fontWithName”的参数必须是字体的真实名称,而不是文件名。如果使用Mac字体手册打开ttf文件,您将直接在窗口顶部看到其名称。

    @dstarh-这完全是错误的。它们从iOS 3.2开始就受到支持,在iOS 4中使用起来非常简单。x@dstarh-可能需要对你的讽刺进行一点改进。:-)但是要小心。字体文件的名称并不总是与字体名称相同。在计算机上安装字体时,可以检查字体名称。我这么说是因为我有这个问题,花了几个小时来解决。谢谢@SlavcoPetkovski,你为我节省了很多时间!我将.otf字体添加到.plist中,并通过编程从代码中调用它们。我还连接了h文件的标签,可以设置文本。这似乎是最好的方法,但我做错了什么?我只是不得不将这个文件添加到目标成员中。单击字体文件,然后在右边的菜单中选择“目标成员资格”部分的项目(如果尚未选择)。步骤2对我来说似乎是必要的。谢谢
    [uiLabel setFont:CiutadellaBold];