2010-07-22 6 views
1

내 iPhone 4에서 아름답게 실행되는 프로그램이 있습니다. Quartz를 사용하여 그래픽을 그릴 수 있도록 UIView (TestView)를 사용합니다 (매우 간단한 그래픽과 동그라미). 그러나 iPhone 4의 새로운 고해상도 화면을 활용해야합니다. 현재 iPhone 3과의 하위 호환성을 보장하여 코드에서 하나의 "포인트"로 이동하면 iPhone 4 화면에서 2 픽셀의 움직임이 발생합니다 . UIView를 2.0 배율로 업데이트하면 iPhone 4의 고해상도를 활용하기 위해 논리적 좌표 공간에서 픽셀 공간으로 매핑을 변경할 수 있습니다. UIView 축척 비율을 변경하는 방법에 대한 문서를 찾을 수 없습니다.iPhone4 용 UIView to ScaleFactor 2.0 업데이트

예를 들어 CGContextSetLineWidth (context, 1.0) 함수로 지정해야하는 모든 선을 그립니다. 은 2 픽셀 너비의 선을 그립니다. 실제로 한 픽셀 너비를 그리려면이 값을 변경해야합니다.

http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/SupportingResolutionIndependence/SupportingResolutionIndependence.html#//apple_ref/doc/uid/TP40007072-CH10-SW12

UIView의 문서는 contentScaleFactor 속성을 제공하지만, 아니오 "설정"방법 :

나는 안녕하세요 고해상도 화면을 지원하는 애플의 설명에 축척 비율을 변경하는 설명하지만 예 또는 방법을 찾을 수 있습니다. 아래 줄을 ttp : //에서 http : //로 변경하여 URL을 설정합니다.

ttp : //developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html # // apple_ref/occ/cl/UIView

답변

1

iPhone 4는 자동으로 배율 2의 UIView를 만들 수 있습니다. 근본적인 문제는 CG가 비정상적인 방식으로 선을 렌더링한다는 것입니다. 나는 말할 수있는 한 멀리). 선 너비를 1.0/contentScaleFactor (iPhone 4의 경우 0.5)로 설정하고 위아래로 직선을 그리거나 (똑바로 좌우로) 선의 너비를 1로 설정하면 전체 너비가 1의 완벽한 밝은 선이됩니다. 픽셀. 그러나 나머지 절반은 이것을 너비 2 픽셀의 선으로 렌더링하고 두 픽셀의 선은 절반 만 켜집니다. 이것은 복잡한 상황에서 좋게 보이는데, 특히 움직임이 관련되어 있습니다. 단 한 줄만 살펴 본다면 꽤 짜증납니다.

한 줄로이 문제를 해결하기위한 해킹은 좌표를 반값으로 "흔들 리기"위한 것입니다. 따라서 (0,0)에서 (0,10)까지 그림을 그리고 "double width"라인을 얻으려면 (0.5, 0)에서 (0.5, 10)까지 그리기를 시도하십시오.