字体未在Interface Builder中显示

出于某种原因,在设计我的iPad应用程序时,许多字体都不会显示在Interface Builder中。 不幸的是我的iPad尚未交付,所以我不知道从长远来看这是否会成为一个问题,但它肯定会维持到模拟器。

有问题的字体在各种网站上列为与iPad兼容,但SDK 4.0.1似乎仍然混淆不清。

例如,分配给使用默认字体直接在新鲜iPad视图上显示的标签的Hoefler Text字体。 如果我单击编辑文本,它将以正确的字体显示。 我现在已经在几台Mac上试过了

这是一个问题,因为我需要通过应用程序模拟发送到我的客户端为他们的后端团队签署像素完美布局:(

有任何想法吗?!

对于可能感兴趣的其他人:XCode 3.x上的IB存在错误/已知问题,包括非标准字体和Interface Builder。 自定义字体通常需要以编程方式设置(通过[UIFont fontWithName …)。

对于模型,您应该使用PhotoShop等工具而不是Interface Builder。

在Interface Builder中使用自定义字体,可以使用可重用的库。

它使用一个简单的技巧来做到这一点。 将字体(比如calibri)设置为您在项目中永远不会使用的所有UI元素,FontReplacer将在自定义字体和calibri之间进行映射。 因此,无需制作IBOutlets或任何其他图形。

这里是github的链接,您可以从中下载FontReplacer以在项目中使用。 https://github.com/0xced/FontReplacer

我通过在UILabel上编写自定义类别来解决这个问题。 该类别有一个’myFontName’属性,我使用objc_setAssociatedObject在标签上设置,并使用objc_getAssociatedObject从对象获取。

然后,我在名为“updateWithMyFont”的类别中编写了另一种方法,通过标签的属性文本属性设置标签上的字体(获取attributesText并复制属性,设置字体,创建新的属性字符串,设置attributedText属性)。

Interesting Posts