2010-08-03 94 views
6

由于某些原因,在设计我的iPad应用程序时,许多字体在Interface Builder中不会显示。不幸的是,我的iPad尚未发布,所以我无法确定这是否会长期存在问题,但它肯定会保留在模拟器中。在Interface Builder中不显示的字体

有问题的字体在各种网站上列出,与iPad兼容,但SDK 4.0.1似乎仍然感到困惑。

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

这是一个问题,因为我需要通过应用实体模型发送给我的客户,为他们的后端团队:(

任何迹象像素的完美布局想法?!

+0

为什么不能标记这个iphone-sdk?每次我都会忽略它?!?! – 2010-08-03 17:17:41

回答

8

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

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

+0

它似乎还没有修复......我试图将Hoefler Text用于我的设计,这确实很痛苦。 – CedricSoubrie 2011-03-27 21:50:15

+7

当我写这篇文章XCode 4没有发布,但是 - 你是对的:它仍然在4,不幸... :( – lxt 2011-03-27 23:09:52

+3

仍然在Xcode 4.5破碎 – Adam 2012-12-13 17:56:22

3

使用界面生成器中的自定义字体可重复使用的库可用。

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

这里是链接到github从哪里可以下载FontReplacer用于您的项目。 https://github.com/0xced/FontReplacer

+0

不是很好解决方案,如果你试图排队你的标签等UI界面设计师的工作:( – user441669 2013-06-27 16:50:50

2

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

然后,我在名为'updateWithMyFont'的类中写了另一种方法,通过标签的属性文本属性设置标签上的字体(抓住属性文本并复制属性,设置字体,创建新的属性字符串,设置属性文本属性)。

+0

你可以在这里包括你的代码,这样我可以更好地理解? – Suragch 2015-06-24 02:37:51