不同语言的iOS自定义字体的垂直对齐

不同语言的iOS自定义字体的垂直对齐,ios,objective-c,fonts,uikit,uifont,Ios,Objective C,Fonts,Uikit,Uifont,我在iOS应用程序中使用了一种名为Classic Robot的自定义.ttf字体。我正在尝试添加日文翻译,此字体似乎不支持日文字符。一开始这不是问题,因为iOS似乎会自动将字体更改为系统默认字体,可以支持日语 我的问题是,这两种字体在iOS渲染时具有不同的垂直对齐方式,如下图所示。如您所见,日文字体在白色框(即框架)顶部附近对齐,而英文字体位于中间附近。这使得我很难正确布局文本。有人知道为什么会这样吗 我相信这可能与iOS字体上的升序和降序属性有关,我不能确定。你的问题是:“有人知道为什么会

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

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

我相信这可能与iOS字体上的升序和降序属性有关,我不能确定。

你的问题是:“有人知道为什么会这样吗?” 答案是日本字体的升序属性比经典的机器人字体小。这可以通过生成自定义日文字体来解决,该字体具有足够大的升序属性,使其与从其他字体获得的间距相匹配。这可以通过下载并遵循中发布的说明来完成

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

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

可以为四个插图(顶部、左侧、底部、右侧)中的每一个指定不同的值。正值将收缩或插入该边,使其靠近按钮的中心。负值会扩展或超出该边。这适用于按钮图像和按钮标题。

我也有同样的问题,但目前尚未找到合适的解决方案。