저는 UIImageViews로 구성된 사용자 정의보기가 있습니다. 이 UIImageView는 크기가 다양합니다 (200x200에서 50x50까지). 표시되는 이미지 (png 파일에서로드 됨)는 가능한 가장 높은 해상도 (200x200)로 자원에 저장되지만 더 낮은 해상도로 자주 표시됩니다. iPhone에서 UIImageView로 이미지 크기 조절
은 현재 난 그냥 따라서, 전체 해상도 이미지와 UIImageViews를로드UIImage* anImage = [UIImage imageWithContentsOfFile:imagePathAndName]; // anImage is 200x200
aView = [[UIImageView alloc] initWithImage:anImage];
aView.frame = myFrame; // myFrame is 50x50
첫 번째 질문,있는 UIImageView가에서 이미지를 축소 어떠한 성능 저하 (메모리 나 CPU 시간) 단지셔서 할 말있다 200x200 ~ 50x50? 내 앱이 메모리를 많이 사용하거나 느려지는 것 같지는 않지만 속도를 높이거나 메모리 사용량을 줄이면 성공할 수 있습니다.
프로그래밍 방식으로 이미지의 크기를 조절하면서 놀았습니다. 이처럼 :
UIImage* anImage = [UIImage imageWithContentsOfFile:imagePathAndName]; // Image is UIGraphicsBeginImageContext(scaledSize); // scaledSize is 50x50
CGRect scaledRect = CGRectMake(0.0, 0.0, scaledSize.width, scaledSize.height);
[anImage drawInRect:scaledRect];
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // Scaled image is now 50x50
UIGraphicsEndImageContext();
aView = [[UIImageView alloc] initWithImage:scaledImage];
aView.frame = myFrame; // myFrame is 50x50
프로그래밍 이미지가 먼저 부모 뷰의 경우에는 병이 내 아이폰 4를 참조에로드 할 때까지있는 UIImageView의 크기가 크기에 기반 ... 영향이없는 것 같았다 확장, 아이폰 3G 스크린의 크기이다. 안타깝게도, 아이폰 4가 3G보다 2 배의 해상도를 가지고 있음에도 불구하고, 아이폰 4에서 실행될 때이 뷰의 크기는 동일하다. 그래서 뷰의 크기에 따라 이미지 크기를 조정하면 아이폰 4보다 해상도가 낮아지고 다소 엉뚱한 것처럼 보입니다.
두 번째 질문은 프로그래밍 방식으로 이미지 크기를 줄이는 것이 도움이되는 경우입니다. iPhone 4에서 여분의 픽셀을 어떻게 활용할 수 있습니까? 분명히 나는 내 견해의 크기만큼 갈 수 없다.
UIGraphicsBeginImageContextWithOptions 완벽하게 속임수를 썼는지, 감사합니다! 그리고 조기 최적화에 대한 귀하의 요점은 잘 받아 들여지고 있습니다. – zpasternack