Я знаю, что есть этот:
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
Но так как CGSize всегда имеет одинаковую высоту и не приспосабливается к какому-либо сжатому тексту или чему-либо еще, CGSize не сообщает, какова высота текста.
Пример. Создайте UILabel с 320 x 55 точками и поместите туда текст «ооооооооооооооо». Пусть ярлык сжимает текст вниз. Сюрприз: CGSize.height остается такой же высоты, даже если текст настолько мал, что вам нужен микроскоп.
Хорошо, так что после того, как я ударился головой о моего MacBook Pro, который сейчас наполовину сломан, единственная мысль, которая может помочь, - это противный фактический размер шрифта. Но размер шрифта в пика, я думаю, это не совсем то, что вы получаете на экране, не так ли?
Когда этот размер шрифта равен 10, мой текст на самом деле максимум на 10 пунктов? Время от времени я пытался сделать именно это, и как только в тексте появился символ «ay» или какой-либо символ, который простирается до уровня ниже (как это делает хвост «y»), он выходит за границы, и весь текст превышает 10 пунктов.
Итак, как бы вы вычислили реальную высоту текста для однострочной маркировки без длинной бороды и опыта работы в больнице?