如何更改表情符号的颜色?

时间:2016-01-25 19:38:14

标签: ios swift emoji

我有一个表情符号,我希望它是白色的,但是当我运行该程序时,它显示为红色。如何将其更改为白色?

rating.text = "\(♥♥♥♥♥)"
rating.textColor = UIColorRGB("ffffff")

2 个答案:

答案 0 :(得分:4)

following answer解释了为什么你不能改变表情符号字符的颜色。字形本质上是图像。

如果您希望能够使用可以着色的心形符号,请尝试使用其中一个非表情符号心形字符,例如♥︎

或确保标签的字体未使用Apple Color Emoji字体。

答案 1 :(得分:0)

我需要为一个项目执行此操作,并找到了解决该问题的几种方法。每个都有其局限性,但仍然是有用的技巧。

首先,您可以在表情符号后附加Unicode text presentation selector,以使其呈现为文本,然后使用字体颜色。

限制:

  1. 该表情符号的文本表示可能不可用,而您获得了未知的字符表示。

  2. 文本表示的细节通常较少

或者,您可以在表情符号本身上使用CSS过滤器来更改其色调(加上饱和度,对比度,灰度等)

限制:

  1. 需要访问页面的CSS(适用于您自己的网页,但您不能在instagram帖子中使用它)

  2. 表情符号图形取决于应用程序,因此结果 可能是不可预测的。例如,firefox上的文件夹图标是 (目前)是丑陋的蓝色。我将其过滤为黄色,但在 其他代码(以黄色开头的其他浏览器)下面的代码将引起我尝试修复的问题!

无论如何,下面是一些使用css和html两种方法的示例:

.folderitem_normal:before {
	content:'\1f4c2';
	margin-right:4px;
}

.folderitem_presentation_selector:before {
	color: magenta;
	content:'\1f4c2\FE0E';
	margin-right:4px;
}

.folderitem_css_filter:before {
	content:'\1f4c2';
	filter: hue-rotate(180deg) brightness(1.5);
	margin-right:4px;
}
<div class="folderitem_normal">Normal appearance of emoji for comparison (HTML &#x1f4c2;)</div>

<div class="folderitem_presentation_selector">Presentation selector.  Notice how it has been colored like normal text.  (HTML &#x1f4c2;&#xFE0E;)</div>

<div class="folderitem_css_filter">Css filter looks nice, but results are application-dependent. (HTML = N/A)</div>