如何使用不同的字体在NSAttributedString中垂直居中一行?

tet*_*ive 5 objective-c nsattributedstring core-text ios nsparagraphstyle

我有一个NSAttributedString"表"使用NSTextTab停止,其中第一列是KEY,第二列是值

像这样:

|  **KEY 1**|value1|
|**KEY TWO**|value2|
Run Code Online (Sandbox Code Playgroud)

KEYS的字体大小/重量不同+全部大写.行对齐,以便所有字母的底部匹配.我想垂直微调这些值,使它们看起来与KEYS垂直居中.

有没有办法做到这一点?这似乎非常专业,但从设计的角度来看,我认为它看起来会更好

Cal*_*leb 10

我没有尝试过,但似乎你应该可以使用NSBaselineOffsetAttributeName它.以下是文档对此的说法:

此属性的值是一个NSNumber对象,其中包含一个浮点值,指示字符与基线的偏移量(以磅为单位).默认值为0.

因此,您可能需要计算将值移动所需的点数 - 我猜这是键和值之间字体大小差异的一半.然后NSBaselineOffsetAttributeName将该数量的点应用于值的文本.