我正在根据 UIFont sizeWithFont 返回的内容设置 UILabels 框架,但是无论出于何种原因,当我使用自定义字体时,返回的值都包括一些填充,如下所示。
当我使用boldSystemFontOfSize时,文本在中间垂直对齐(这是我想要的),但是当我使用fontWithName时,我最终会在文本下填充。sizeWithFont添加填充的任何原因?
这是我的代码...
CGRect frameLabel = label.frame;
CGSize sizeLabel = [label.text sizeWithFont:label.font];
frameLabel.size.width = sizeLabel.width;
frameLabel.size.height = sizeLabel.height;
[label setBackgroundColor:[UIColor redColor]];
** 编辑 **
我可以使用此代码计算顶部和底部填充并调整标签frame.origin.y以将我的标签垂直居中于需要的位置
float topPadding = [label.font ascender] - [label.font capHeight];
float bottomPadding = [label.font lineHeight] - [label.font ascender];