OK Odpowiadam na moje własne pytanie tutaj.
Znalazłem wiele odniesień do tego błędu przez Google, ale wszyscy pracowali nad nim, bawiąc się rozmiarami czcionek. Po wielu polowaniach znalazłem this thread, który mówi, że antyaliasing jest stosowany, gdy ramka widoku zawiera ułamkowe wartości pikseli, np. jeśli obliczysz jego rozmiar jako ułamek super widoku.
Rzeczywiście, rzucanie wartości CGRect do (int) dla ramki widoku działało idealnie. Tak na przykład, jeśli chcesz swoje pole tekstowe, aby być wyśrodkowany pionowo w SuperView, należy użyć (int) rzucić tak:
textFieldWidth = 300;
textFieldHeight = 31;
offsetX = 0;
offsetY = (superview.bounds.size.height - textFieldHeight)/2;
textField.frame = CGRectMake((int) offsetX,
(int) offsetY,
(int) textFieldWidth,
(int) textFieldHeight);
Istnieje również funkcja CGRectIntegral że można użyć do przekształcania CGRect do wartości integralnych.
Otworzyłem to jako wiki, możesz zmodyfikować pytanie/odpowiedź. –