2012-05-04 3 views
3

ios 파일 시스템의 문서 디렉토리에서 이미지로로드하는 UIImageView가 있습니다.ios - UIImageView의 SizeToFit이 작동하지 않습니다.

문제는 내가

[imageView sizeToFit]; 

를 호출 할 때 그것은 작동하지 않는다는 것입니다. 나는 그 시점에서 이미지가 완전히로드되지 않았기 때문에 크기가 & 인 이미지가 있기 전에 sizeToFit 부분이 호출되기 때문이라고 생각합니다.

누군가 나를 고치는 길을 가르쳐 줄 수 있습니까?

여기 내 코드입니다 :

imageView.contentMode = UIViewContentModeScaleAspectFit; 
imageView.image = [UIImage imageWithContentsOfFile:[FileOperations getLibraryPath:[NSString stringWithFormat:@"%d.png", listData.imageId]]]; 
[imageView sizeToFit]; 
[imageScroll setContentOffset:CGPointMake(0, 0)]; 
imageScroll.contentSize = imageView.frame.size; 
imageScroll.decelerationRate = UIScrollViewDecelerationRateFast; 
imageScroll.minimumZoomScale = 1; 
imageScroll.maximumZoomScale = 2; 
[imageScroll setZoomScale:imageScroll.minimumZoomScale]; 
[imageScroll addSubview:imageView]; 

감사합니다, 애슐리

+0

정확히 "작동하지 않는다"는 것을 의미합니까? 잘못된 크기입니까? –

+0

'UIImageView'의 "Mode"값 중 하나 인 "Aspect Fit"을 사용하지 않는 이유가 있습니까? – mbm29414

+0

"작동하지 않습니다"라는 말은 100 %로 보았는데 이미지가 iPhone 자체보다 훨씬 큽니다. –

답변

3

이미지 크기 확인 :

NSLog(@"%@", NSStringFromCGSize(imageView.image.size)); 

가 수동으로 이미지 크기에 따라 imageView 프레임을 설정할 수 있습니다를, 예를 들어 이미지가 너무 커서 imageView의 수퍼 뷰에 맞지 않는 경우

+1

그것은'NSStringFromCGSize (imageView.image.size)'여야합니다 –

+0

@AndreasLey 예, 물론 고마워요. – Costique

+1

대답은 imageView의 프레임을 실제 이미지 크기의 절반으로 설정하는 것이 었습니다. 감사합니다. Costique & @AndreasLey –

0

귀하의 상황에서는 작동하지만 UIImage가 0이면 실패합니다.

UIImage의 imageWithContentsOfFile:UIImage 또는 nil에 대한 (완전히로드 된) 참조를 반환합니다. 당신이 올바른 길을 가고 있다고 확신합니까?

+0

예. 이미지가로드되기 때문에 확실합니다. –

2
UIImageView *myImage = [[UIImageView alloc]init]; 
myImage.contentMode = UIViewContentModeScaleAspectFit; 
myImage.image = [UIImage imageName:@"image.png"]; 
[self.view addSubview:myImage];