0

スクロール ビュー内の画像ビューで png を拡大しようとすると、奇妙な動作が発生します。ユーティリティ ペインの制約または設定が間違っていると思います。最初に画像全体を表示してからズームインしたい場合はどうすればよいですか?

画像はレンダリングされますが、ズームインとズームアウトをピンチしようとすると、画像の高さだけが大きくまたは小さく変化し、幅は iPhone の画面幅のままになります。ただし、十分にいじると、さらにズームインできますが、すべてが歪んでスピンします。私が間違っていることはありますか?

View Controller実装ファイルに現在あるコードは次のとおりです。

@interface ZooViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end

@implementation ZooViewController
@synthesize imageView;
@synthesize scrollView;

-(void)viewDidLoad
{
    [super viewDidLoad];

    [self.imageView setContentMode:UIViewContentModeScaleAspectFit];

    self.scrollView.contentSize = self.imageView.image.size;
    self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width,     self.imageView.image.size.height);

}

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView{

    return self.imageView;
}

-(void)didReceiveMemoryWarning
{

    [super didReceiveMemoryWarning];

}


-(void)viewDidUnload{

    [self setImageView:nil];
    [self setScrollView:nil];
    [super viewDidUnload];
}

@end
4

1 に答える 1

2

最初に画像コンテンツ モードを UIViewContentModeScaleAspectFit に設定します

[self.imageView setContentMode:UIViewContentModeScaleAspectFit];

その後、スクロールビューのコンテンツサイズを設定します

self.scrollView.contentSize = self.areaImageView.frame.size;

scrollviewデリゲートを設定することを忘れないでください

 // For supporting zoom,
 scrollView.minimumZoomScale = 0.5;
 scrollView.maximumZoomScale = 2.0;

 ...

 // Implement a single scroll view delegate method
 - (UIView*)viewForZoomingInScrollView:(UIScrollView *)aScrollView {
   return imageView;
  } 
于 2013-01-22T04:17:14.210 に答える