2012-05-04 17 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」値の1つ、「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

sizeToFitは状況に応じて動作するはずですが、UIImageがnilの場合は失敗します。

UIImageのimageWithContentsOfFile:は、UIImageまたはnilへの(完全にロードされた)参照を返します。あなたは正しい道を通過していると確信していますか?

+0

はい、イメージが読み込まれるので確信しています。 –

2
UIImageView *myImage = [[UIImageView alloc]init]; 
myImage.contentMode = UIViewContentModeScaleAspectFit; 
myImage.image = [UIImage imageName:@"image.png"]; 
[self.view addSubview:myImage]; 
関連する問題