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

        

    }

  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/yeng/p/5865493.html
Copyright © 2011-2022 走看看