【问题标题】:Increase the font size of emoji characters in a UITextView in iOS 5.x在 iOS 5.x 中增加 UITextView 中表情符号字符的字体大小
【发布时间】:2012-05-20 12:45:09
【问题描述】:

如果我有 UITextView 并将字体大小设置为 32。当我运行应用程序(在模拟器和设备上)时,我会看到一个大光标和我输入的文本,就像我假设的那样将。但是如果我切换表情符号键盘,它们会显示得很小。就像字体的大小从未增加一样。

我知道这些表情符号字体比例,因为我在 OSX Lion 中将它们放大到巨大的比例,如果我创建一个带有表情符号字符的 UIButton 作为标签并将字体设置为“Apple Color Emoji”和大小到 64 岁,它们在我的设备上看起来又大又漂亮。似乎只是 UITextView 没有调整它们的大小。

【问题讨论】:

    标签: ios ios5 fonts uitextview emoji


    【解决方案1】:

    您是否尝试过将 UITextView 的字体也设置为 AppleColorEmoji?在 iOS 上,AppleColorEmoji 似乎是唯一可以绘制放大表情符号的字体。如您所见,使用任何其他字体,表情符号永远不会超过大约 20x20 像素。

    我使用this handy free app called Fonts! 进行了测试,这是一种快速获得实际设备本身反馈的好方法。

    我注意到 Game Center 应用程序似乎能够将有趣的字体与放大的表情符号混合在一起,因此很明显它可能比(相当普通的)表情符号字体做得更好!不过,我不知道这是它的代码有什么特别之处,还是它使用的字体有什么特别之处,看起来像是自定义字体。

    【讨论】:

    • AppleColorEmoji 是要走的路。没有空间。我使用了相同的字体名称,但带有空格。
    【解决方案2】:

    您可以使用任何字体缩放表情符号,前提是您设置 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;
    

    【讨论】:

    • 当我使用 Apple 表情符号解决您的问题时,分辨率变差
    猜你喜欢
    • 2013-12-19
    • 2012-11-07
    • 2018-05-26
    • 2017-05-27
    • 2015-04-28
    • 1970-01-01
    • 2014-09-17
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多