UIScrollViewDetegate滚动协议和图像缩放
- 当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容)
- 如果要是现实缩放功能必须遵从ScrollView代理协议。
图像缩放实现
- 图像缩放实现
- 遵从滑动代理协议
-
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
-
- 设置ScrollView的协议
- self.scrollView.delegate = self;
- 设置滚动的尺寸
- self.scrollView.contentSize = self.minionView.frame.size;
- 设置缩放比例(如果不设置缩放比例的话,默认是0那么缩放即不起作用)
- self.scrollView.maximumZoomScale = 2.0;//最大缩放比例
- self.scrollView.minimumZoomScale = 0.2;//最小缩放比例
- 遵从滑动代理协议
滑动协议
缩放协议
- 当用户开始拖拽scrollView时就会调用
-
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
-
- 只要scrollView正在滚动,就会调用
-
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
-
- 当用户使用捏合手势的时候会调用
-
- (UIView )viewForZoomingInScrollView:(UIScrollView )scrollView
-
正在缩放的时候会调用
-
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
import “MJViewController.h”
@interface MJViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIImageView *minionView;
@end
// 代理 \ 委托@implementation MJViewController
(void)viewDidLoad
{
[super viewDidLoad];// 设置内容尺寸
self.scrollView.contentSize = self.minionView.frame.size;// 设置
self.scrollView.delegate = self;// 设置最大和最小的缩放比例
self.scrollView.maximumZoomScale = 2.0;
self.scrollView.minimumZoomScale = 0.2;
}
/**
- 当用户开始拖拽scrollView时就会调用
*/
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@”开始拖拽—–”);
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
/**
- 只要scrollView正在滚动,就会调用
*/
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@”—-正在滚动–%@”, NSStringFromCGPoint(scrollView.contentOffset));
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
/**
- 当用户使用捏合手势的时候会调用
* - @return 返回的控件就是需要进行缩放的控件
*/
- (UIView )viewForZoomingInScrollView:(UIScrollView )scrollView
{
NSLog(@”—-开始缩放”);
return self.minionView;
}
- (UIView )viewForZoomingInScrollView:(UIScrollView )scrollView
/**
正在缩放的时候会调用
*/(void)scrollViewDidZoom:(UIScrollView *)scrollView
{
NSLog(@”—-正在缩放”);
}(void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
-
- 当用户开始拖拽scrollView时就会调用