前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS图片缩小放大scollView实现代码

iOS图片缩小放大scollView实现代码

原创
作者头像
用户8671053
修改2021-10-29 11:33:11
2K0
修改2021-10-29 11:33:11
举报
文章被收录于专栏:码农的生活码农的生活

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

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

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

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

主要功能有:

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

代码语言:javascript
复制
    //  ImageDetailCon.h  
    //  
    //  

    #import <UIKit/UIKit.h>  
    @interface ImageDetailCon : UIViewController<UIScrollViewDelegate>    //需要使用 对应的 协议  
    @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  

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档