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