7

我一直认为,当我需要箭头或子弹或其他任何东西时,我可以在字符串中使用简单的标志性 unicode 字符,这很棒。字形将以与字符串的其余部分相同的颜色呈现,并带有漂亮的简单和干净的图标。我可以通过在 XCode 的编辑菜单上使用 Mac 的“特殊字符”对话框来预览它们的外观。

在 iOS5 中,这些字形以全彩色呈现,并不简单和干净。我相信这些是表情符号图标?

我正在寻找对此更改的解释,以及理想情况下如何强制 iOS5 恢复到 iOS2 - iOS4 行为。

这是一个例子: @"← left arrow, right arrow → airplane ✈";

编辑

显然,用于呈现文本 ( ) 的 NSString UIKit 扩展drawAtPoint: / drawInRect:没有表现出这种行为。所以也许这是一个 UILabel 的事情?具体来说,我在 UISegmentControl 段按钮和 UILabel 中注意到了它。

4

1 回答 1

1

这不是错误,它取决于使用的字体。当您在字符串中使用所选字体中不可用的字符时,iOS 会自动用另一种字体替换字形。

系统字体 (Helvetica) 中没有这些字符,所以我猜测 Apple 已经更改了备用字体列表,因此 Emoji 的排名高于以前用于这些字符的备用字体。

要修复它,请找到 a) 具有您想要的字符版本的字体,并且 b) 在 iPhone 上可用,并将您的标签设置为使用该字体而不是默认系统字体。

或者,您可以只创建一个 UILabel 子类并覆盖 drawRect 方法,以便它使用 drawAtPoint/drawInRect 方法来绘制字符串。

于 2012-03-20T18:50:22.140 回答