2016-04-09 6 views
0

私のコードでは、スクロールビューを作成し、そこにイメージビューを追加しています。残念ながら、自動サイズ変更マスクは機能しておらず、画像は画面の一部に表示されます。コードは以下に示されています:UIScrollView autoresizaskが機能していません

// Scroll View Setup 
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10, 216, 300, 344)]; 
self.scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin); 
self.scrollView.delegate = self; 
self.scrollView.contentMode = UIViewContentModeScaleToFill; 
self.scrollView.scrollEnabled=YES; 
self.scrollView.userInteractionEnabled=YES; 
self.scrollView.bounces = YES; 
self.scrollView.bouncesZoom = YES; 
self.scrollView.delaysContentTouches = YES; 
self.scrollView.canCancelContentTouches = YES; 
self.scrollView.minimumZoomScale = 1; 
self.scrollView.maximumZoomScale = 10; 
self.scrollView.zoomScale = 1; 
self.scrollView.opaque = YES; 
self.scrollView.clipsToBounds = YES; 
self.scrollView.clearsContextBeforeDrawing = YES; 
self.scrollView.contentSize = CGSizeMake(300, 344); 
self.scrollView.autoresizesSubviews = YES; 
[self.view addSubview:self.scrollView]; 

// Image View setup 
self.pgImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 344)]; 
self.pgImage.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin); 
self.pgImage.contentMode = UIViewContentModeScaleAspectFit; 
self.pgImage.opaque = YES; 
self.pgImage.clipsToBounds = NO; 
self.pgImage.clearsContextBeforeDrawing = YES; 
self.pgImage.autoresizesSubviews = YES; 

[self.scrollView addSubview:self.pgImage]; 

//autoresize scrollView 
CGFloat scrollViewHeight = 0.0f; 
CGFloat scrollViewWidth = 0.0f; 
for (UIView *view in self.scrollView.subviews) { 
    CGFloat height = (view.frame.size.height + view.frame.origin.y); 
    scrollViewHeight = ((height > scrollViewHeight) ? height : scrollViewHeight); 
    CGFloat width = (view.frame.size.width + view.frame.origin.x); 
    scrollViewWidth = ((width > scrollViewWidth) ? width : scrollViewWidth); 
} 

[self.scrollView setContentSize:(CGSizeMake(scrollViewWidth, scrollViewHeight))]; 

私にとっては、縫い目はOKですが、何かが欠落している可能性があります。あなたの援助は歓迎されます。よろしくお願いします。

+0

あなたのポートレートモードでのUI(pgImage)の例外は何ですか? –

+0

UIは常にポートレートモードです。ありがとう。 –

答えて

0

autolayoutを使用してください。 UIViewScrollViewに追加し、ImageViewを追加してください。

+0

それは機能しましたが、自動レイアウトなしでは、残りの部分にちょうど従いました。 –

+0

それは素晴らしいです。 :) autolayoutの使用は、この種のものをはるかに簡単にすることができます..! – Lion

関連する問題