由于某些原因,在设计我的iPad应用程序时,许多字体都不会显示在Interface Builder中。不幸的是我的iPad尚未交付,所以我不知道从长远来看这是否会成为一个问题,但它肯定会保留到模拟器。
有问题的字体在各种网站上都列为与iPad兼容,但SDK 4.0.1似乎仍然很混乱。
例如,使用默认字体分配给直接在全新iPad视图上绘制的标签的Hoefler Text字体。如果我单击编辑文本,它将以正确的字体显示。我现在已经在几台Mac上试过了
这是一个问题,因为我需要通过app mock发送给我的客户,以便为他们的后端团队签署像素完美布局:(
有什么想法吗?!
答案 0 :(得分:9)
对于可能感兴趣的其他人:XCode 3.x上的IB存在一个错误/已知问题,包括非标准字体和Interface Builder。自定义字体通常需要以编程方式设置(通过[UIFont fontWithName ...)。
对于模型,您应该使用PhotoShop等工具而不是Interface Builder。
答案 1 :(得分:3)
在Interface Builder中使用自定义字体可以使用可重用的库。
它使用一个简单的技巧来做到这一点。将字体(比如calibri)设置为您在项目中永远不会使用的所有UI元素,FontReplacer将在自定义字体和calibri之间进行映射。所以不需要制作IBOutlets或任何其他图形。
这是github的链接,您可以从中下载FontReplacer以在项目中使用。 https://github.com/0xced/FontReplacer
答案 2 :(得分:2)
我通过在UILabel上编写自定义类别来解决这个问题。该类别有一个'myFontName'属性,我使用objc_setAssociatedObject在标签上设置,并使用objc_getAssociatedObject从对象获取。
然后我在名为'updateWithMyFont'的类别中编写了另一种方法,通过标签的属性文本属性设置标签上的字体(抓住attributionText并复制属性,设置字体,创建新的属性字符串,设置attributedText)属性)。