Пользовательский размытый текст UITextField - PullRequest
2 голосов
/ 11 марта 2010

Когда UITextField с пользовательским фреймом (200 & times; 54 px) теряет фокус, текст выглядит размытым.

пример скриншота http://idzr.org/iu59

Это общая проблема? Известны ли какие-либо обходные пути / решения?

1 Ответ

2 голосов
/ 06 апреля 2010

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

Конечно, приведение значений CGRect к int для кадра представления работало отлично. Например, если вы хотите, чтобы ваше текстовое поле было центрировано вертикально в суперпредставлении, вы должны использовать int приведение типа этого:

textFieldWidth = 300;
textFieldHeight = 31;
offsetX = 0;
offsetY = (superview.bounds.size.height - textFieldHeight) / 2;

textField.frame = CGRectMake((int) offsetX,
                             (int) offsetY,
                             (int) textFieldWidth,
                             (int) textFieldHeight);

Существует также функция CGRectIntegral, которую можно использовать для преобразования CGRect в целочисленные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...