Почему UiFont SizeWithFont, включая пробел в его расчете?

Я устанавливаю структуру UILabels на основе того, что возвращается UiFont SizeWithFont, но по какой-либо причине, когда я использую пользовательский шрифт, значения, которые возвращаются, включают в себя некоторые прокладки, как видно ниже.

Когда я использую 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]];

** Редактировать **

Я могу рассчитать верхнюю и нижнюю прокладку, используя этот код и настроить Метки Рамка.Origin.y , чтобы вертикально центр мою этикетку, где он должен быть

float topPadding = [label.font ascender] - [label.font capHeight];
float bottomPadding = [label.font lineHeight] - [label.font ascender];
6
задан Filip Radelic 29 August 2015 в 19:10
поделиться