2012-07-06 3 views
2

UIView이 전체 화면처럼 크지는 않지만 화면 중간에 나타나길 원합니다. 나는 그런 식으로 중심을 때내가 가운데에 놓을 때 UIView의 내용이 흐리게 처리됩니다.

self.dialogView.center = CGPointMake(self.view.bounds.size.width/2.0, self.view.bounds.size.height/2.0); 

불행하게도, UIView의 내용이 흐릿하게 나타납니다 : 나는 다음과 같은 코드 있음했다. enter image description here

나는이 그것을 고정했습니다

은 콘텐츠가 될 이유

enter image description here

당신이 말해 줄 수 :)해야로서 지금의 UIView의 내용이 나타납니다

self.dialogView.center = CGPointMake(self.view.bounds.size.width/2.0 + 0.5, self.view.bounds.size.height/2.0); 

흐릿 이유 왼쪽 위치 오프셋에 0.5를 더해야합니까?

+0

비 망막 디스플레이에서도 이러한 현상이 발생합니까? –

+0

@ A-Live : 질문의 그림은 Retina iPhone 시뮬레이터가 아닌 사람의 사진입니다. 망막에서 그것은 흐릿하지 않습니다. – xx77aBs

+0

뷰의 중심을 사용하기 위해 오른쪽, 자연스럽게 하나의 점을 망막에 추가합니다. –

답변

8

새 센터에서 컨트롤의 뷰가 {20.5, 20.5}처럼 1/2 픽셀로 떨어집니다. 화면이 반 화소 만 그릴 수 없으므로 렌더링 엔진은 가능한 한 이미지를 확산하여 동일한 효과를 얻으려고 시도하므로 이미지가 흐릿 해집니다.

모든 뷰의 출처가 정수인지 확인해야합니다.

+0

그래, 그 센터가 절반 픽셀이 아닌지 확인했다. 그러나 나는 기점을 확인하는 것을 잊었다 :) 고마워! – xx77aBs

+1

@ xx77aBs 예를 들어 물건의 너비가 15 인 경우 예를 들어, 물건의 중심 x가 자연스럽게 7.5가되기 때문에 (실제로 원점이 0이라고 가정하면) 중심이 중요하지 않습니다. 괜찮습니다. 그러나 원점은 정수가되어야 전체 뷰가 픽셀 정렬됩니다.) –

+0

@JasonCoco Thanks buddy !! –

1

글쎄, UIView이 화면의 픽셀 그리드에 배치되는 방식 때문이라고 생각합니다. 일반 화면 (72px/inch)에서 0.5 포인트를 의미하는 것은 0.5 픽셀을 의미합니다. 그러면 내 생각에 적어도 다음과 같은 결과가 나옵니다. P

관련 문제