清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
使用ios SDK自带的 UIScrollView 可以实现对图片的缩放
现在给大家分享我的项目中可以直接使用的组件,需要引入 afnetworking等第三方框架
关于AFNetworking大家可以自行百度,使用它的目的是下载网络图片(使用SDWebImage也可以)
使用scrollView实现图片的缩放,下面是一个可以直接使用的组件:
主要功能有:
显示网络图片,捏合放大或者缩小,单击关闭当前图片页面,双击放大
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | // 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 |