码迷,mamicode.com
首页 > 其他好文 > 详细

单击双击放大图片

时间:2016-09-12 19:02:49      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

-(void)create{   

 _scrollerView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, YHScreemW, YHScreemH)];

    

    _scrollerView.showsVerticalScrollIndicator = NO;

    _scrollerView.showsHorizontalScrollIndicator = NO;

    _scrollerView.minimumZoomScale = 1.0;

    _scrollerView.maximumZoomScale = 2.0;

    _scrollerView.delegate = self;

    [self.view addSubview:_scrollerView];

    

    

    //粘贴一张图片

    _imageView = [[UIImageView alloc] init];

    _imageView.frame = CGRectMake(0, 0, _scrollerView.frame.size.width, _scrollerView.frame.size.height);

    _imageView.center = CGPointMake(_scrollerView.frame.size.width/2, _scrollerView.frame.size.height/2);

    _imageView.contentMode = UIViewContentModeScaleAspectFit;

    [_imageView setImage:[UIImage imageWithData:_picData]];

    [_imageView setUserInteractionEnabled:YES];

    [_scrollerView addSubview:_imageView];

    

    

    

    //添加双击事件

    UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];

    [doubleTapGesture setNumberOfTapsRequired:2];

    [_imageView addGestureRecognizer:doubleTapGesture];

    

    

    //添加双击事件

    UITapGestureRecognizer *singleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGesture)];

    [singleTapGesture requireGestureRecognizerToFail:doubleTapGesture];//没有这个单击会阻挡双击

    [_imageView addGestureRecognizer:singleTapGesture];

}

 

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

{

    return _imageView;

}

- (void)handleDoubleTap:(UIGestureRecognizer *)gesture

{

    CGFloat zoomScale = _scrollerView.zoomScale;

    zoomScale = (zoomScale == 1.0) ? 2.0 : 1.0;

    CGRect zoomRect = [self zoomRectForScale:zoomScale withCenter:[gesture locationInView:gesture.view]];

    [_scrollerView zoomToRect:zoomRect animated:YES];

}

 

- (CGRect)zoomRectForScale:(float)scale withCenter:(CGPoint)center

{

    CGRect zoomRect;

    zoomRect.size.height =_scrollerView.frame.size.height / scale;

    zoomRect.size.width  =_scrollerView.frame.size.width  / scale;

    zoomRect.origin.x = center.x - (zoomRect.size.width  /2.0);

    zoomRect.origin.y = center.y - (zoomRect.size.height /2.0);

    return zoomRect;

}

 

-(void)singleTapGesture{

    

    [self dismissViewControllerAnimated:YES completion:nil];

    

}

 

单击双击放大图片

标签:

原文地址:http://www.cnblogs.com/yeng/p/5865493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!