Суть в том, что я пытаюсь воспроизвести пользовательский интерфейс iMessage. Для метки: специальное дополнение этого типа текста заставило меня создать собственный UILabel. Вот код под drawTextInRect:
[super drawTextInRect:UIEdgeInsetsInsetRect(rect, UIEdgeInsetsMake(0, 15.0, 5.0, 15.0))];
Пока никакой тайны.
Проблема возникает, когда моя ячейка (содержащая эту метку, должна вычислять высоту). Метка получает эффект округления метки следующим образом:
cell.message.layer.cornerRadius = 18;
[cell.message sizeToFit];
Видимо, я не могу получить правильную высоту и ширину этой метки. Я использую sizeToFit, а затем измеряю возможные размеры с помощью «sizeWithFont:» (устарело в iOS 7) и «boundingRectWithSize:». Единственный способ правильно отобразить текст — добавить вручную неопределенное количество размеров к высоте и ширине после выполнения расчетов.
Лучшее, что я могу получить, это экран, который может выглядеть хорошо, но все еще имеет некоторые проблемы и не отображает тексты должным образом.
По ссылке есть скрин некоторых скринов не отображается должным образом.