Я устанавливаю структуру UILabels на основе того, что возвращается UiFont SizeWithFont, но по какой-либо причине, когда я использую пользовательский шрифт, значения, которые возвращаются, включают в себя некоторые прокладки, как видно ниже.
Когда я использую 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]];
** Редактировать **
Я могу рассчитать верхнюю и нижнюю прокладку, используя этот код и настроить Метки Рамка.Origin.y , чтобы вертикально центр мою этикетку, где он должен быть
float topPadding = [label.font ascender] - [label.font capHeight];
float bottomPadding = [label.font lineHeight] - [label.font ascender];