gpt4 book ai didi

ios - 为什么 UIFont sizeWithFont 在其计算中包含空格?

转载 作者:可可西里 更新时间:2023-11-01 03:57:32 25 4
gpt4 key购买 nike

我正在根据 UIFont sizeWithFont 返回的内容设置 UILabels 框架,但无论出于何种原因,当我使用自定义字体时,返回的值包括一些填充,如下所示。

当我使用 boldSystemFontOfSize 时,文本在中间垂直对齐(这正是我想要的),但是当我使用 fontWithName 时,我最后在文本下方填充。 sizeWithFont 添加填充的任何原因?

enter image description here

这是我的代码...

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];

最佳答案

字体是这种填充的唯一可能原因,但如果你只需要一行标签,不要浪费时间编辑字体,只需在设置适当的框架后通过做一些事情将标签的高度减少那几个像素像这样:

label.frame = CGRectInset(label.frame, 0, bottomPadding);

此外,代替:

CGRect frameLabel = label.frame;
CGSize sizeLabel = [label.text sizeWithFont:label.font];
frameLabel.size.width = sizeLabel.width;
frameLabel.size.height = sizeLabel.height;

你可以调用:

[label sizeToFit];

关于ios - 为什么 UIFont sizeWithFont 在其计算中包含空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7398383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com