我有一个应用程序,我使用Helvetic字体,字体大小为60.0像素,用于My UILabel。当有人使用表情符号字符输入文本时,会出现问题。整个文本呈现60.0像素字体大小,但表情符号字符不会缩放。
P.S。我不想将AppleColorEmoji字体用于我的普通文本。我不能使用NSAttributedString,因为我的应用程序支持iOS 5。
答案 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;