2012-09-01 4 views
0

UIImage에 UILabel을 그립니다.
UILabel의 너비는 193.5이며 아래 코드의 결과 UIImage는 194 와이드입니다.
이유가 무엇인가요?UILabel을 UIImage로 변환 할 때의 크기가 다른 경우

UIGraphicsBeginImageContextWithOptions(label.bounds.size, YES, [[UIScreen mainScreen] scale]); 
[label.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+1

hm, 193.5 픽셀? – beryllium

+0

이것을 해결할 수 있었습니까? –

답변

0

어떻게하면 UILabel 너비의 절반 픽셀을 얻을 수 있었습니까? 아마 그것을보고 자동으로 194로 반올림했습니다.

+0

iOS *에는 크기 조정을위한 두 가지 개념이 있습니다. 포인트 대 픽셀. 가장 일반적인 구분은 망막 디스플레이, 1 "포인트"는 2x2 픽셀입니다. 나는 우리가 여기에 대해 물어 보는 상호 작용에 정확히 어떻게 영향을 미치는지는 모르겠지만, 그것이 밖으로 있다는 것을 아는 데 도움이 될 수 있습니다. –

+0

부분적. 망막 디스플레이를 사용하는 경우 망원경이 아닌 치수 (예 : 640이 아닌 320)로 표시됩니다. 이 장치는 망막 디스플레이가 있지만 코드에서 망이 아닌 것으로 참조해야하는 경우 자동으로 해당 크기에 2를 곱합니다. 따라서 절반 픽셀은 전체 픽셀 만 렌더링 할 수 있으므로 렌더링되지 않습니다. – Brayden

0

이것을 고려해보십시오. 실제로 픽셀을 절반으로 렌더링 할 방법은 없습니다. 기술적으로 하나의 픽셀을 다른 픽셀과 혼합 할 수 있지만 여전히 전체 픽셀이 필요합니다. 그래서 그것은 반올림해야합니다. UI 요소 좌표에 정수가 아닌 값을 갖는 것은 실수라고 생각합니다. 흐릿한 UI로 끝날 것입니다. 그러니 하프 픽셀 문제를 해결하는 방법을 찾으십시오.

관련 문제