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