【问题标题】:iOS App - Emoji Characters Font SizeiOS 应用程序 - 表情符号字符字体大小
【发布时间】:2013-12-19 08:06:31
【问题描述】:

我有一个应用程序,我在其中为我的 UILabel 使用具有 60.0 像素字体大小的 Helvetic 字体。当有人输入带有表情符号字符的文本时,就会出现问题。整个文本以 60.0 像素字体大小呈现,但表情符号字符未缩放。

附:我不想在普通文本中使用 AppleColorEmoji 字体。我不能使用 NSAttributedString,因为我的应用支持 iOS 5。

【问题讨论】:

标签: ios fonts uilabel emoji


【解决方案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;

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 2012-05-20
    • 2014-05-22
    • 2014-06-26
    • 2016-12-31
    • 2012-05-08
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多