Я использую -[NSString sizeWithFont]
, чтобы получить высоту текста. Символ 't' явно выше, чем 'm', но -sizeWithFont
возвращает ту же высоту для обеих этих строк. Вот код:Как вычислить точную высоту текста с помощью UIKit?
UIFont* myFont = [UIFont fontWithName:@"Helvetica" size:1000.0];
NSString* myStr = @"m";
CGSize mySize = [myStr sizeWithFont:myFont];
С 'т', как показано на рисунке, она возвращает {834, 1151}
. С myStr = @"t"
вместо этого, это {278, 1151}
. Меньшая ширина отображается, как ожидалось, но не высота.
Есть ли какая-либо другая функция, плотно обертывающая текст? Я идеально ищу что-то, что эквивалентно Paint.getTextBounds() для Android.
'sizeWithFont' возвращает максимально возможный размер для любого символа этого шрифта. Похоже на то, что вы действительно хотите сделать, это добраться до сырых глифов и получить высоту каждого персонажа. –