//
// ViewController.m
// TestUIScrollView
//
// Created by on 15-3-16.
// Copyright (c) 2015年 va. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
@property (nonatomic, strong) UIScrollView *scrollView;
@property (nonatomic, strong) UIImageView *imgView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
_scrollView.delegate = self;
_scrollView.minimumZoomScale = 1.0;
_scrollView.maximumZoomScale = 2.0;
[self.view addSubview:_scrollView];
_imgView = [[UIImageView alloc] initWithFrame:self.view.bounds];
[_scrollView addSubview:_imgView];
[_imgView setImage:[UIImage imageNamed:@"img.jpg"]];
_imgView.contentMode = UIViewContentModeScaleAspectFit;
UITapGestureRecognizer *doubleTapGez = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleClick:)];
doubleTapGez.numberOfTapsRequired = 2;
doubleTapGez.numberOfTouchesRequired = 1;
[_imgView addGestureRecognizer:doubleTapGez];
[_imgView setUserInteractionEnabled:YES];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return _imgView;
}
- (void)doubleClick:(UITapGestureRecognizer *)tapGez
{
CGPoint pointInView = [tapGez locationInView:_imgView];
CGFloat zoomScale = _scrollView.zoomScale * 2;
CGFloat scale = MIN(zoomScale, _scrollView.maximumZoomScale);
CGFloat w = _scrollView.bounds.size.width / scale;
CGFloat h = _scrollView.bounds.size.height / scale;
CGFloat x = pointInView.x - (w/2.0);
CGFloat y = pointInView.y - (h/2.0);
CGRect rect = CGRectMake(x, y, w, h);
return [_scrollView zoomToRect:rect animated:YES];
}
@end