現在画面中央に表示されている画像をピンチインで拡大させ、その状態で画像を端から端までスクロールして見れるようなプログラムを作っているのですが、なぜか画像をピンチインで拡大した後に縦スクロールができません。横スクロールはできます。また、ピンチイン後に少し画像が下にズレます。何かそれが縦スクロールできないことに関係している気もするのですが......。下記にコードを記します。どなたか分かる方がいれば教えていただきたいです。すみませんが、よろしくお願いします。

ImageScaleViewController.h

@interface ImageScaleViewController : UIViewController

@property (weak, nonatomic) UIImageView *scaleImageView;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;

@end

ImageScaleViewController.m

UIImageView *scaleImageView;

@implementation ImageScaleViewController

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:YES];

    self.view.backgroundColor = [UIColor blackColor];

    scaleImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.scaleImageView.center.x - self.scaleImageView.bounds.size.width / 2, self.scaleImageView.center.y - self.scaleImageView.bounds.size.height / 2, self.scaleImageView.bounds.size.width, self.scaleImageView.bounds.size.height)];
    scaleImageView.image = self.scaleImageView.image;

    [self.scrollView addSubview:scaleImageView];

    [self imageScaleByAffine];

    [self setPinchGesture];
}

- (void)imageScaleByAffine {
    [UIView animateWithDuration:0.2f animations:^{
        scaleImageView.frame = CGRectMake(0, 0, scaleImageView.frame.size.width * 2, scaleImageView.frame.size.height * 2);
        scaleImageView.center = self.view.center;
    }];
}

- (void)setPinchGesture {
    self.scrollView.minimumZoomScale = 2.0;
    self.scrollView.maximumZoomScale = 3.0;
}

- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return scaleImageView;
}

@end