美文网首页
实现scollView的缩放

实现scollView的缩放

作者: lichengjin | 来源:发表于2016-04-14 22:11 被阅读52次

    使用ios SDK自带的 UIScrollView 可以实现对图片的缩放

    现在给大家分享我的项目中可以直接使用的组件,需要引入 afnetworking等第三方框架

    关于AFNetworking大家可以自行百度,使用它的目的是下载网络图片(使用SDWebImage也可以)

    使用scrollView实现图片的缩放,下面是一个可以直接使用的组件:

    主要功能有:

    显示网络图片,捏合放大或者缩小,单击关闭当前图片页面,双击放大

    //  ImageDetailCon.h

    //

    //

    #import <UIKit/UIKit.h>

    @interface ImageDetailCon : UIViewController   

    //需要使用 对应的 协议

    @property(strong,nonatomic)NSURL *imageURL;

    //给外界的接口,外界传值给ImageDetailCon  *vc;,然后present出来即可

    @end

    //

    //  ImageDetailCon.m

    //

    #import "ImageDetailCon.h"

    #import<UIImageView+AFNetworking.h>

    //使用afnetworking框架

    @interface ImageDetailCon ()

    {

    UIScrollView *scrollView;

    UIImageView *imageView;

    }

    @end

    @implementation ImageDetailCon

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    scrollView=[[UIScrollView alloc]initWithFrame:self.view.bounds];

    scrollView.maximumZoomScale=5.0;//图片的放大倍数

    scrollView.minimumZoomScale=1.0;//图片的最小倍率

    scrollView.contentSize=CGSizeMake(self.view.bounds.size.width*1.5, self.view.bounds.size.height*1.5);

    scrollView.delegate=self;

    imageView=[[UIImageView alloc]initWithFrame:self.view.bounds];

    [imageView setImageWithURL:self.imageURL placeholderImage:[UIImage imageNamed:@"Fav_Img_Download"]];

    [scrollView addSubview:imageView];

    [self.view addSubview:scrollView];

    imageView.userInteractionEnabled=YES;

    //注意:imageView默认是不可以交互,在这里设置为可以交互

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

    tap.numberOfTapsRequired=1;//单击

    tap.numberOfTouchesRequired=1;//单点触碰

    [imageView addGestureRecognizer:tap];

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

    doubleTap.numberOfTapsRequired=2;//避免单击与双击冲突

    [tap requireGestureRecognizerToFail:doubleTap];

    [imageView addGestureRecognizer:doubleTap];

    imageView.contentMode=UIViewContentModeScaleAspectFit;

    }

    -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView  //委托方法,必须设置  delegate

    {

    return imageView;//要放大的视图

    }

    -(void)doubleTap:(id)sender

    {

    scrollView.zoomScale=2.0;//双击放大到两倍

    }

    - (IBAction)tapImage:(id)sender

    {

    [self dismissViewControllerAnimated:YES completion:nil];//单击图像,关闭图片详情(当前图片页面)

    }

    @end

    相关文章

      网友评论

          本文标题:实现scollView的缩放

          本文链接:https://www.haomeiwen.com/subject/gaaglttx.html