zoukankan      html  css  js  c++  java
  • 单击双击放大图片

    -(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];

        

    }

  • 相关阅读:
    curl命令学习笔记
    IOS安全测试思维导图
    Hello World
    Hive SQL使用和数据加载的一点总结
    采用最低松弛度优先调度的实时系统调度程序
    MongoDB Map Reduce速度提升20倍的优化宝典
    释放时间不同可中断平行机问题在线算法
    RPC框架系列——Avro
    Solr 3.6.2索引MySQL数据库配置过程
    IKAnalyzer 独立使用 配置扩展词库
  • 原文地址:https://www.cnblogs.com/yeng/p/5865493.html
Copyright © 2011-2022 走看看