在iOS 5.x中增加UITextView中表情符号字符的字体大小

8

如果我有一个UITextView,并将字体大小设置为32,当我运行应用程序(在模拟器和设备上),我会看到一个大的光标和我打的文字正常显示。但是如果我切换到Emoji键盘,它们就会变小,就像字体大小从未增加一样。

我知道这些Emoji字体可以缩放,因为我在OSX Lion中将它们变得非常大,如果我创建一个带有表情符号字符作为其标签的UIButton,并将字体设置为“Apple Color Emoji”,大小为64,它们在我的设备上看起来非常巨大而且漂亮。似乎只有UITextView没有调整它们的大小。

2个回答

8

你尝试将UITextView的字体设置为AppleColorEmoji吗?在iOS上,似乎只有AppleColorEmoji字体才能绘制放大后的表情符号。使用其他任何字体,表情符号永远不会变得比约20x20像素更大,正如你所注意到的那样。

我使用了一个方便的免费应用程序Fonts!进行测试,这是一种在实际设备上快速获得反馈的好方法。

我注意到Game Center应用程序似乎能够混合一个有趣的字体和放大的表情符号,因此显然可以做得比(相当平庸的)表情符号字体更好!但我不知道这是否是其代码中的特殊之处,还是它所使用的字体的特殊之处,该字体看起来像是自定义的。


AppleColorEmoji是正确的选择。不要有空格。我之前使用了同样的字体名称但带有空格。 - Steve E

-1

如果您设置UITextViews的contentScaleFactor并使用CGTransform缩放文本字段,则可以使用任何字体放大表情符号。(您甚至可以将它们放大得比AppleColorEmoji默认允许的更大(具有高分辨率)。

float scaleFactor = 2.0f;
float resolutionFactor = 2.0f;

CGPoint tempCenter = theTextView.center;

theTextView.contentScaleFactor *= resolutionFactor;
theTextView.layer.contentsScale *= resolutionFactor;


for (UIView *subview in [theTextView subviews]) {
    subview.contentScaleFactor *= resolutionFactor;
    subview.layer.contentsScale *= resolutionFactor;
}

theTextView.transform = CGAffineTransformScale(CGAffineTransformIdentity, scaleFactor, scaleFactor);

theTextView.center = tempCenter;

当我使用苹果表情符号尝试您的解决方案时,分辨率变得很差。 - coolcool1994

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