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

清华大佬耗费三个月吐血整理的几百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