我一直认为,当我需要箭头或子弹或其他东西时,我可以在字符串中使用简单的标志性unicode字符。字形将呈现与字符串其余部分相同的颜色,并带有简洁明了的图标。我可以通过在XCode的“编辑”菜单上使用Mac的“特殊字符”对话框来预览它们的外观。
在iOS5中,这些字形以全彩色呈现,并且不简单和干净。我相信这些是表情符号图标?
我正在寻找对此更改的解释,理想情况下如何强制iOS5恢复到iOS2 - iOS4行为。
以下是一个示例:@"← left arrow, right arrow → airplane ✈";
修改:
显然,用于呈现文本(drawAtPoint: / drawInRect:
)的NSString UIKit扩展不会出现此行为。那么也许这是UILabel的事情?具体来说,我已经在UISegmentControl段按钮和UILabel中注意到了它。
答案 0 :(得分:1)
这不是一个错误,它取决于使用的字体。当您在所选字体中不可用的字符串中使用字符时,iOS会自动替换另一种字体的字形。
系统字体(Helvetica)中没有这些字符,因此我猜测Apple已经更改了后备字体列表,以便表情符号排在上面用于后备的任何内容之上对于那些角色。
要解决此问题,请找到a)具有所需字符版本的字体,并且b)在iPhone上可用,并将标签设置为使用该字体而不是默认的系统字体。
或者,您可以创建一个UILabel子类并覆盖drawRect方法,以便它使用drawAtPoint / drawInRect方法绘制字符串。