0

スクロールビューで画像を操作する前に、ズームしようとしています。今、その画像を ViewController に置き換えて、その ViewController 内のオブジェクトを拡大しようとしています。機能していません。

viewDidLoad:

- (void)viewDidLoad
{
self.boardView = [[BoardViewController alloc] init];
[self.scrollView addSubview:self.boardView.view];

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

UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewDoubleTapped:)];
doubleTapRecognizer.numberOfTapsRequired = 2;
doubleTapRecognizer.numberOfTouchesRequired = 1;
[self.scrollView addGestureRecognizer:doubleTapRecognizer];

viewForZoomingInScrollView:

- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return [self.scrollView.subviews objectAtIndex:0];

doubleTapped メソッド: (ログを入れるとこれが呼び出されます。ズームしていないだけです。

- (void)scrollViewDoubleTapped:(UITapGestureRecognizer*)recognizer {

CGPoint pointInView = [recognizer locationInView:self.boardView.view];

CGFloat newZoomScale = self.scrollView.zoomScale * 3.0f;
if (self.scrollView.zoomScale > self.scrollView.minimumZoomScale){
newZoomScale = MIN(newZoomScale, self.scrollView.minimumZoomScale);
}
else {
    newZoomScale = MIN(newZoomScale, self.scrollView.maximumZoomScale);
}

CGSize scrollViewSize = self.scrollView.bounds.size;

CGFloat w = scrollViewSize.width / newZoomScale;
CGFloat h = scrollViewSize.height / newZoomScale;
CGFloat x = pointInView.x - (w / 2.0f);
CGFloat y = pointInView.y - (h / 2.0f);

CGRect rectToZoomTo = CGRectMake(x, y, w, h);

[self.scrollView zoomToRect:rectToZoomTo animated:YES];

何が悪いのかわかりません。

4

0 に答える 0