Почему текст на UILabel размыт на iPad, если ширина не ровная? - PullRequest
6 голосов
/ 10 ноября 2011

Следующее явление: мой текст «Поиск».Я создаю UILabel SmallSystemFontSize и вызываю sizeToFit:.

В результате получается 39 единиц ширины, а текст выглядит размытым.Если я установлю ширину на 40, она будет выглядеть идеально.

Я прочитал, что текст становится размытым, если вы нажмете субпиксели, то есть ширина будет примерно 39,5, но, похоже, она должна быть четной.

Может кто-нибудь подтвердить или даже объяснить, что происходит?

Ответы [ 2 ]

4 голосов
/ 14 мая 2013

В моем случае виновником было установление shouldRasterize = YES на CGLayer супервизии UILabel. Удаление этой строки сделало текст красивым и четким.

4 голосов
/ 10 ноября 2011

UIView элементы располагаются по центру, который для нечетного размера составляет половину пикселя, 19,5 для ширины 39. Это выравнивание вызывает усреднение пикселей, что приводит к размытости.

Oneспособ сделать его равным по ширине.

Другой способ - разместить его по центру в четной точке использования:

@property(nonatomic) CGPoint center

Пример для желаемой позиции label; в (10, 10, 39, 19) можно использовать:

label.center = CGPointMake(50, 20);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...