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

        

    }

  • 相关阅读:
    整理了一份React-Native学习指南
    新建项目
    spring security 匿名登录
    spring security remember me实现自动登录
    spring security为不同用户显示各自的登录成功页面
    spring security 管理会话 多个用户不可以使用同一个账号登录系统
    spring security 图解过滤器的使用
    spring security 判断用户是否登录 只要登录就可以访问资源
    spring security动态管理资源结合自定义登录页面
    spring security自定义拒绝访问页面
  • 原文地址:https://www.cnblogs.com/yeng/p/5865493.html
Copyright © 2011-2022 走看看