zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

iOS图片缩小放大scollView实现代码详解手机开发

ios手机代码开发 实现 详解 图片 放大
2023-06-13 09:20:12 时间

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

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

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

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

主要功能有:

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

 // 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 

5229.html

app程序应用开发手机开发无线开发移动端开发