2012-08-30 5 views
1

레티 나 디스플레이가있는 iPad 3 용 응용 프로그램을 개발합니다. 사양에 따라 이미지를 1536 x 2008 크기로 표시하여 (상태 표시 줄과 함께) 전체 화면을 계산해야합니다. 그런 크기로 이미지의 크기를 조정하고 프로그래밍 방식으로로드하고 UIImageView (스토리 보드에서로드 됨)에 표시되도록 설정합니다. 게다가 최상의 성능을 얻으려면 스케일링을 피하기 위해 UIImageView 모드를 Center로 설정하십시오. 앱을 실행하면 내 이미지의 중심 만 보입니다. 마치 내 이미지가 화면의 4 배인 것처럼 보이지만 사실이 아닙니다.iPad가 큰 이미지를 표시하지만

여성용은 viewWillAppear 방법

UIImage *image = [UIImage imageWithContentsOfFile: self.pageData.pageFilename]; 

NSLog(@"Image size: %f %f", [image size].width, [image size].height); 

NSLog(@"Image view size: %f %f", self.imageView.frame.size.width, self.imageView.frame.size.height); 

[ self.imageView setImage: image]; 

의 내 코드 그리고 출력에서 ​​얻을 :

Image size: 1536.000000 1990.000000 
Image view size: 768.000000 1004.000000 

어떻게이 문제를 해결하려면? 내 이미지는 볼 수있는 크기의 JPG이며 72 DPI입니다. 그러나 DPI는 중요하지 않습니다.

+0

당신이 다른 모드의 테스트 적이 있습니까? (단지 디버깅을위한) - http://stackoverflow.com/questions/1428816/iphone-center-uiimage-in-uiimageview의 사용자는 동일한 동작 (일종의 동작)을 사용하는 'center'를 자신의 작업에서 사용했습니다. 케이스. – YDL

+0

'UIImage' 크기는 ** 픽셀입니다 ** 'UIImageView' 크기는 ** 점 **에 있습니다. 정확히 무엇이 문제인가? 두 유닛은 서로 다르다. – holex

+0

이미지의 _exact_ 이름은 무엇입니까? 이름 뒤에'@ 2x' 확장을 달았습니까? – holex

답변

5

픽셀과 포인트가 혼합되어 있습니다.

iOS 크기는 픽셀 단위가 아니라 점 단위로 측정됩니다. 장치가 망막 디스플레이를 사용하면 1 포인트 = 2 픽셀입니다. 이전 디스플레이를 사용하면 1 포인트 = 1 픽셀입니다.


일반 표시
1 포인트 = 1 개 화소
1024 * 768 점
1024 * 768 픽셀

망막 디스플레이
1 포인트 = 2 화소
1024 * 768 포인트
2048 * 1536 픽셀


그래서 디스플레이의 크기가 같은 크기가 두 경우 모두 :
1024 * 768 점

+0

네, 맞습니다. 그렇다면 Retina 디스플레이를 최대한 활용하는 방법은 무엇입니까? 내 그림은 사용자가 지정한 크기 (1990x1536)와 비슷하므로 화면을 완벽하게 맞춰야합니다. – M4ks

관련 문제