自定义字体显示在IB中,但不在模拟器中显示

Sur*_*gch 10 xcode fonts interface-builder ios mongolian-vertical-script

我已经设置了a UITextView和a UILabel来使用自定义字体.(它是一个垂直镜像的蒙古语字体,但我还包括英文文本,以便您可以看到效果.)单词显示在Interface Builder中,但在模拟器中,大多数字符UITextView只是空框.奇怪的是,在UILabel模拟器中正确显示的字符中.

如何将它们显示在UITextView同样的位置?

在此输入图像描述

笔记:

  • 我使用的是Xcode版本6.3.2.从这个SO Q&A我知道自定义字体应该与IB中的Xcode 6一起使用.
  • 我已将我的字体文件添加到项目中,并从自定义字体列表中为其选择UITextViewUILabel.
  • 我在我的项目中添加了"应用程序提供的字体"键Info.plist,并将自定义字体添加到其中. 在此输入图像描述
  • 这个问题非常相似(但不同,因为它没有提及UITextViewUILabel问题).在撰写本文时,该问题的OP并未表明最高投票答案是否有帮助.我在那个答案中运行了代码,以确认我的字体是否真的在捆绑中.我得到了以下结果,它确认它在捆绑中,因此仍然无法解决我的问题.

    Family : ChimeeWhiteMirrored
        Font : ChimeeWhiteMirrored
    
    Run Code Online (Sandbox Code Playgroud)

有没有人看到我的错误或有任何其他想法?

更新

收到@ darkheartfelt的downvote并评论下面的答案后,我重新创建了我原来的问题,想想也许我错过了什么.虽然在iOS 9中字体在模拟器中的显示方式有所不同,但基本问题仍然存在:它在IB中看起来不错但在模拟器中看起来不行.

在此输入图像描述

问题可以重现如下(使用Xcode 7.1.1):

  1. 启动一个新的单一视图项目.
  2. 该字体添加到项目中(可下载这里从相关github上的项目)
  3. 在Info.plist文件中添加"由应用程序提供的字体",字体名称为"ChimeeWhiteMirrored.ttf".
  4. 确认目标的"复制包资源"包含ChimeeWhiteMirrored.ttf.
  5. 添加UITextView到故事板.
  6. 在IB属性检查器中粘贴以下文本: 1-10: ??? ????? ???? ???? ??? ??????? ?????? ????? ???? ??? one two three four five six seven eight nine ten
  7. 在"IB属性"检查器中,将字体设置为"自定义",将族设置为ChimeeWhiteMirrored.

这再现了特殊字符的问题,正如我在下面的回答中所描述的,我发现解决这个问题的唯一方法就是在代码中设置字体.

import UIKit
class ViewController: UIViewController {

    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // set custom font
        textView.font = UIFont(name: "ChimeeWhiteMirrored", size: (textView.font?.pointSize)!)
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我错了或遗失了什么,请告诉我.在那之前,我将不得不继续使用我接受的答案.

bra*_*ipt 24

看来,当我第一次将字体导入我的项目时,我选择了"添加到目标成员资格",在检查字体后,它没有添加到目标中!它在Interface Builder中运行得很好,但在sim或编译时不起作用.

在项目文件夹视图中选择字体文件并检查目标成员资格框是否已修复:


归档时间:

查看次数:

4539 次

最近记录:

7 年,7 月 前