【问题标题】:Font not loading in XCode字体未在 XCode 中加载
【发布时间】:2012-04-27 13:37:15
【问题描述】:

好吧,我想将新字体导入我的应用程序,但没有成功。我的 .plist 中有应用程序键提供的字体,项目 0 中的字体为字符串,值为 AdelleBasic_Bold.otf,我已将该字体添加到我的项目中,我正在尝试将其用于:

_myTextField.font = [UIFont fontWithName:@"Adelle Basic" size:15];

当我打开它时,Adelle Basic 是字体的标题。我也试过没有成功:

_myTextField.font = [UIFont fontWithName:@"AdelleBasic_Bold" size:15];

有什么建议吗?

【问题讨论】:

    标签: iphone objective-c xcode fonts uifont


    【解决方案1】:

    这可能不适用于所有字体,但根据我的经验,Xcode 可能很挑剔,而且我从来没有能够让它使用 otf 字体(任何有的人请发帖!),所以我一直使用这个非常棒的网站转换了我的字体 - Online Font Converter

    我将它们转换为 ttf 字体,它们似乎总是可以正常工作 - 确保使用准确的名称(更改字体的文件名似乎也会停止工作)。

    希望这会有所帮助。

    【讨论】:

    • 好的,但现在我有另一个问题。如果我想使用普通字体和粗体字体,我必须同时导入 .ttf,但是当我调用它时,它不起作用,如果两个 .ttf 具有相同的标题但一个是常规的并且其他是粗体。我的意思是:i.stack.imgur.com/rR9Ua.png
    • 您必须将它们视为两种不同的字体
    • @SergioCalvoGonzález 或者只是循环你的字体familyNames并使用exact name
    • @SomaMan 我有两个不同的 .fft 文件,但一个是粗体的,另一个是常规的,并且两者都有相同的标题,所以当我调用一个时,没有任何反应......
    • @Mat 如何将两个 .fft 合并为一个系列?
    【解决方案2】:

    以下是将字体添加到 XCODE 应用程序的正确方法(.otf 字体可以正常工作):

    1. 在 XCode 项目中包含字体
    2. 确保它们包含在目标中
    3. 仔细检查您的字体是否作为资源包含在您的捆绑包中
    4. 在您的应用程序列表中包含您的 iOS 自定义字体
    5. 查找字体名称

    感谢和更好的图片解释here

    【讨论】:

      【解决方案3】:

      您只能使用扩展名为 ttf 的第三方字体,而具有 otf 扩展名的字体将无法有效工作,并且大多数情况下都无法使用

      【讨论】:

        【解决方案4】:

        除了保证 5 点,你还可以试试下面的 sn-p 代码打印出安装的字体:

        for (NSString* family in [UIFont familyNames])
        {
            NSLog(@"%@", 家庭)
            for (NSString* name in [UIFont fontNamesForFamilyName: family])
            {
                NSLog(@" %@", 名称);
            }
        }

        如果您要使用的字体未列出,那么您错过了 5 个步骤中的一些。

        【讨论】:

          【解决方案5】:

          我只是将字体添加到项目中,检查字体是否会在包中复制。在我的 Mac 上设置它并直接使用 Interface Builder 中的字体。如果你有任何problems solve they here.

          【讨论】:

            【解决方案6】:

            我看过一些关于 tff 和 otf 的 cmets,我不同意,可能是您没有使用正确的字体名称,这并不意味着文件名 要查找您在 xcode 中安装的字体,请运行

                 for family: String in UIFont.familyNames{
                            print(family)
                            for names: String in UIFont.fontNames(forFamilyName: family){
                                print("== \(names)")
                            }
                        }
            

            【讨论】:

              猜你喜欢
              • 2018-03-01
              • 2012-12-26
              • 1970-01-01
              • 1970-01-01
              • 2014-09-07
              • 2012-07-03
              • 1970-01-01
              • 1970-01-01
              • 2016-10-12
              相关资源
              最近更新 更多