在UILabel中显示表情符号?

18

我不确定我在这里缺少了什么,并且搜索也没有帮助我。我想在UILabel中显示表情符号,但是下面的代码并没有做到:

UILabel *label = [[UILabel alloc] init];
label.font = [UIFont fontWithName:@"AppleColorEmoji" size:16.0];
label.text = [NSString stringWithFormat:@"%C", 0x1F431];
// ... etc.

对于其他非字母Unicode字符(例如国际象棋棋子),运行正常,但我尝试过的任何表情符号字符都无法正常工作。


你有检查过 label.font 不是 nil 吗? - idz
好的,我之前没有注意到,但现在我已经注意到了,label.font = <UICFFont: 0xb9a5050> font-family: "Apple Color Emoji"; font-weight: normal; font-style: normal; font-size: 16px。 - AlanL
5个回答

76

要使用表情符号,只需按下控制+命令+空格(⌃⌘Space)即可,无需使用表情符号的Unicode编码。


7
谁TMD给踩了?这是通过Storyboard使用表情符号的最佳答案。 - jovanjovanovic
2
我非常惊讶这样的事情竟然是可能的。 - xinatanil
认真地说,这是最好的方法。 - GKK
最佳答案,我甚至不知道这是可能的。 - ZTAN
1
这太棒了。可以节省大量的研究和复制粘贴时间。赞! - Nitish
谢谢你的这个快捷方式。 - Arpit B Parekh

19

你可能没有为表情符号使用正确的编码。例如,在你的例子中,我认为你正在寻找类似于以下内容的东西:

label.text = [NSString stringWithFormat:@"%C", 0xe04f];

请查看此表格以获取所需的编码。


有趣。这可以运行,但它不是旧的Softbank专有编码吗?我原以为现在标准的Unicode 6.1编码应该(也)可以工作。 - AlanL
如果您使用这些Unicode字符来显示表情符号,苹果是否会拒绝应用程序? - Mini2008

16
在Xcode中,只需点击顶部菜单栏的“编辑”>“表情符号和符号”,就会弹出一个表情框,您可以将其添加到应用程序中的任何文本中,即使需要将其添加到UILable的文本中也可以在界面构建器中使用它。

输入图像描述

输入图像描述


不错,这应该排在最上面,因为它比被接受的版本简单得多。 - Harish

7
在Swift中,您可以进行以下操作:
label.text = ""

一定要包含引号。否则,您将把文本设置为变量中的任何内容。以下内容将显示为“cat”:

let  = "cat"
label.text = 

5
Unicode 6.1编码同样有效,但是你需要像这样指定它们:
label.text = @"\U0001F431";

我可以从哪里获取其他图标的Unicode列表? - Shreesh Garg
@ShreeshGarg 你可以从http://apps.timwhitlock.info/emoji/tables/unicode获取其他图标的Unicode。 - Ashwinkumar Mangrulkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接