사용자 지정 프레임 (200 × 54 픽셀)이있는 UITextField가 포커스를 잃으면 텍스트가 흐리게 보입니다.사용자 지정 UITextField 흐리게 처리 된 텍스트
example screenshot http://idzr.org/iu59
이 일반적인 문제인가? 어떤 해결 방법/솔루션이 있습니까?
사용자 지정 프레임 (200 × 54 픽셀)이있는 UITextField가 포커스를 잃으면 텍스트가 흐리게 보입니다.사용자 지정 UITextField 흐리게 처리 된 텍스트
example screenshot http://idzr.org/iu59
이 일반적인 문제인가? 어떤 해결 방법/솔루션이 있습니까?
Google을 통해이 버그에 대한 참조가 많이 발견되었지만 모두가 글꼴 크기로 놀아서 해결했습니다. 많은 사냥을 한 후에 뷰의 프레임에 분수 픽셀 값이 들어있는 경우 앤티 앨리어싱이 적용되었다는 것을 발견했습니다 (예 : this thread). 슈퍼 뷰의 일부분으로 크기를 계산하면됩니다.
보기의 프레임에 대해 CGRect
값을 int
으로 설정하면 완벽하게 작동합니다. 당신이 CGRect
로 변환하는 데 사용할 수있는 CGRectIntegral
기능도 있습니다
textFieldWidth = 300;
textFieldHeight = 31;
offsetX = 0;
offsetY = (superview.bounds.size.height - textFieldHeight)/2;
textField.frame = CGRectMake((int) offsetX,
(int) offsetY,
(int) textFieldWidth,
(int) textFieldHeight);
: 당신이 당신의 텍스트 필드를 원하는 경우 예를 들어, 수퍼 수직 중심으로 할 수 있도록,이 같은 int
캐스트를 사용한다 적분 값.
답변 해 주셔서 감사합니다. 가장 좋은 해결책 인 것 같습니다. – David
인터페이스 빌더에서도 이런 일이 발생했습니다. 크기를 확인하여 분수가 포함되지 않았는지 확인했습니다. 내 솔루션 버튼을 재현하는 것이 절름발이입니다. 하지만 쉽게 할 수 있습니다. 버튼을 클릭하고 옵션 키를 누른 상태로 드래그하면됩니다. 이렇게하면 마지막 앤티 앨리어싱과 동일한 새로운 버튼이 만들어 지지만 적절한 앤티 앨리어싱이 적용됩니다. 그 후에 남은 일은 행동과 콘센트를 연결하고 다시 배치하는 것입니다. 오래된 버튼을 삭제하십시오. :) –