2012-03-13 15 views
0

私はここにいくつか他の答えを見つけましたが、それらは適用/適用されていないようですので、私の特定のコードのためかもしれないと思います。UIImageViewは私のContentMode設定を無視しています

私のアプリでは、私はUIImagesの配列を持っていますが、これは実際にはiPhoneカメラで撮影した写真です。

UIImageをscrollView内に表示しようとしていますが、画像全体を表示するように正しくスケーリングされています。

これは私のコードです:

scrollView.pagingEnabled = YES; 
scrollView.clipsToBounds = NO; 

CGFloat contentOffset = 0.0f; 

pageControl.numberOfPages = [imageArray count]; 
pageControl.currentPage = 0; 

for(UIImage *image in imageArray) 
{ 
    NSLog(@"image width = %f, image height = %f", image.size.width, image.size.height); 

    CGRect imageViewFrame = CGRectMake(contentOffset, 0, scrollView.frame.size.width,     scrollView.frame.size.height); 

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageViewFrame]; 
    [imageView setImage:image]; 
    [imageView setClipsToBounds:YES]; 
    [imageView setContentMode:UIViewContentModeScaleAspectFill]; //I've tried others, but nothing seems to show the entire image 
    [scrollView addSubview:imageView]; 
    [imageView release]; 
    contentOffset += scrollView.frame.size.width; 
    [scrollView setContentSize:CGSizeMake(contentOffset, 0)]; 
} 

だけ注意することは、これは縦長のアプリ自体が縦向きで撮影された画像です。

のNSLog出力:私は(scrollview以内)UIImageViewに表示参照

image width = 387.200012, image height = 518.400024 

画像は関係なく、私はcontentmodeを変更するもの、画像の中央のズームアップ画像ではありません。

私はここで間違っていますか?ありがとうございました!

+0

イメージを拡大/縮小するとコンテンツモードが機能しません。 –

答えて

1

答えは私が前にコメントしたものです:UIImageの倍率によってContentModeが動作しなくなりました。少なくとも、それは動作していないように見えた。

0

あなたは明らかに動作しないことを...幅として0の高さscrollViewcontentOffsetのコンテンツサイズを設定します。

スクロールビューのコンテンツサイズは、画像のサイズに設定する必要があります。これがコンテンツサイズの意味です。スクロールビューのサイズよりも大きければ、スクロールビューでスクロールして画面にない部分を表示できます。あなたは明らかに何をしたいのか

あなたは、画像を水平スクロールすることができるようにcontentOffset Nの倍の画面の幅にImageViewのの枠を設定することです。したがって、UIImageViewのサイズを画面サイズに設定し、(n * screenSize.width、0)を起点とし、スクロールビューのコンテンツサイズを(n + 1)* screenSize.width、screenSize.widthに設定します)であり、nは画像カウントである。

+0

実際、スクロールビューは完全に動作しています。イメージビューがコンテンツモードを尊重していないということだけです。 しかし私は問題を見つけました。 UIImageのスケールファクタは5でした。これは私がプログラムの最初に設定したものです。これを修正して問題を修正しました。ありがとう! – kurisukun

0

私はこれが尋ねられ、答えられていることを知っていますが、最近この問題の別の原因が考えられます。 tvOS 9.1の時点でadjustsImageWhenAncestorFocusedと設定すると、UIImageViewの場合、contentModeは廃止される可能性があります(バグの可能性があります)。私はこれが誰かを助けることを望む。

関連する問題