【问题标题】:Vertical alignment of iOS custom font in different languagesiOS自定义字体在不同语言中的垂直对齐
【发布时间】:2013-12-02 06:33:57
【问题描述】:

我在我的 iOS 应用程序中使用了一种名为 Classic Robot 的自定义 .ttf 字体。我正在尝试添加日文翻译,但此字体似乎不支持日文字符。最初这不是问题,因为它似乎 iOS 自动将字体更改为可以支持日语的系统默认字体。

我的问题是这两种字体在 iOS 渲染时具有不同的垂直对齐方式,如下图所示。如您所见,日文字体靠近白框(即框架)的顶部对齐,而英文字体则位于靠近中间的某个位置。这让我很难正确布局文本。有谁知道为什么会这样?

我认为这可能与我无法确定的 iOS 字体的上升和下降属性有关。

【问题讨论】:

  • 我有同样的问题,但目前还没有找到合适的解决方案。

标签: ios objective-c fonts uikit uifont


【解决方案1】:

您的问题是:“有人知道为什么会这样吗?” 答案是日文字体的 assender 属性小于 Classic Robot 字体。这可以通过生成自定义日文字体来解决,该字体具有足够大的上升属性,以使其与您从其他字体获得的间距相匹配。这可以通过下载Apple Font Tool Suite 并按照this answer 中发布的说明来完成。

对于按钮,您也可以通过增加插图来解决问题:

myButton.contentEdgeInsets = UIEdgeInsetsMake(15.0, 0.0, 0.0, 0.0);

您可以为四个插图(上、左、下、右)中的每一个指定不同的值。正值会缩小或插入该边缘——将其移近按钮的中心。负值扩展或开始该边缘。这适用于按钮图像和按钮标题。

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 1970-01-01
    • 2019-11-23
    • 2016-01-21
    • 2014-07-24
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多