iOS App - 表情符号字体字体大小

时间:2013-12-03 10:13:21

标签: ios fonts uilabel emoji

我有一个应用程序,我使用Helvetic字体,字体大小为60.0像素,用于My UILabel。当有人使用表情符号字符输入文本时,会出现问题。整个文本呈现60.0像素字体大小,但表情符号字符不会缩放。

P.S。我不想将AppleColorEmoji字体用于我的普通文本。我不能使用NSAttributedString,因为我的应用程序支持iOS 5。

1 个答案:

答案 0 :(得分:1)

如果设置了UITextViews contentScaleFactor,然后使用CGTransform缩放文本字段,则可以使用任何字体缩放表情符号。 (你甚至可以扩大它们(高分辨率)比AppleColorEmoji允许你默认使用。

因此,只需将helvetic字体大小设置为与helvetica中的表情符号默认字体大小相匹配(可能为12.0f),然后将比例因子和分辨率因子设置为2.0f,并使textView的宽度和高度(帧)1/2它通常是什么,然后运行下面的代码,最终产品将是textView谁的框架是正确的大小,你的字体大小是你设置它的两倍(现在24.0f pt字体(包括EMOJIS))和分辨率你的字体(文字)和表情符号都很清晰,好像它们一直都是那么大!)

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;