ОК. Я отвечаю на свой вопрос здесь.
Я нашел несколько ссылок на эту ошибку через 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 в целочисленные значения.