首页 > 代码库 > UIScrollView缩放图片操作

UIScrollView缩放图片操作

要想ScrollView缩放,必须告诉缩放那个控件,它自身的大小是不会缩放的;

并且ScrollView只能缩放自己内部的子控件;

1:这时就要用到代理,代理告诉ScrollView缩放哪个控件。(设置代理对象)

2:要想成为ScrollView的代理就要遵守协议:UIScrollViewDelegate (遵守协议)

3:成为代理后实现协议里的方法;viewForZoomingInScrollView;这个方法是返回要缩放的子控件,就是代理告诉ScrollView哪个控件要缩放

或者说这个方法返回的控件就可以缩放;

4:设置缩放的比例

代码示例:

 1 #import "CXBViewController.h"
 2 
 3 @interface CXBViewController () <UIScrollViewDelegate>
 4 {
 5     UIImageView *_imageView;
 6 }
 7 @end
 8 
 9 @implementation CXBViewController
10 
11 - (void)viewDidLoad
12 {
13     [super viewDidLoad];
14     // 当设置scrollView为全屏时,直接用self.view.bounds
15     UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:self.view.bounds];
16     [self.view addSubview:scroll];
17     // 设置UIImageView,UIImageView的初始化用initWithImage,那么UIImageView的大小和图片的一样
18     UIImage *image = [UIImage imageNamed:@"minion"];
19     _imageView = [[UIImageView alloc] initWithImage:image];
20     [scroll addSubview:_imageView];
21     scroll.contentSize = image.size;
22     // 设置代理
23     scroll.delegate = self;
24     // 设置最大缩放比例
25     scroll.maximumZoomScale = 2.0;
26     // 设置最小缩放比例
27     scroll.minimumZoomScale = 0.2;
28 }
29 
30 #pragma mark 这个方法返回的控件就能够进行缩放操作
31 - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
32 {
33     return _imageView;
34 }
35 @end