09
//滚动过程中触发的方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"正在滚动");
}
//即将开始拖拽的方法,此时滚动视图即将加速
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
NSLog(@"即将进行拖拽");
}
//结束拖拽的方法,不再加速
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"拖拽结束");
}
//即将开始减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
NSLog(@"即将开始减速");
}
//结束减速,也就是停止滚动
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"结束滚动");
/*
if (scrollView.zoomScale != 1.0) {
scrollView.zoomScale = 1.0;
}*/
// 先从负责滚动的大scrollView找到他的子视图
for (UIScrollView *sView in scrollView.subviews){
// 在根据子类的对象类型进行判断
if ([sView isKindOfClass:[UIScrollView class]]){
// 把视图的尺寸恢复到原有尺寸
sView.zoomScale = 1.0;
}
}
}
//指定缩放视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return [scrollView.subviews objectAtIndex:0];
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
UIImageView *imageView = [scrollView.subviews firstObject];
if (scrollView.zoomScale <= 1.0) {
imageView.center = CGPointMake(kWidth/ 2, kHeight / 2);
}
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
NSLog(@"%@",NSStringFromCGSize(scrollView.contentSize));
}
- (void)viewDidLoad {
[super viewDidLoad];
//创建滚动视图
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];
//设置滚动视图的代理
scrollView.delegate = self;
/**
如果想实现滚动视图的缩放功能,必须指定缩放的视图以及(表层scrollView的)缩放的比例
指定缩放视图需要实现代理方法,指定缩放比例,是为滚动设置缩放比例
*/
// scrollView.minimumZoomScale = 0.5;//不能把缩放比例设置给底层scrollView
// scrollView.maximumZoomScale = 2.0;
//设置滚动视图的相关属性
//滚动区域,内容区域的大小
//如果想要实现滚动操作,有三种情况
/**
1、内容视图(滚动区域)的宽大于滚动视图的宽
2、内容视图(滚动区域)的高大于滚动视图的高
3、内容视图(滚动区域)的宽和高都大于滚动视图的宽和高
*/
scrollView.contentSize = CGSizeMake(7 * kWidth, kHeight);
//滚动视图偏移量
scrollView.contentOffset = CGPointMake(0, 0);
//整页滚动
scrollView.pagingEnabled = YES;
//关闭横向显示条
scrollView.showsHorizontalScrollIndicator = NO;
//关闭滚动视图的回弹效果(默认是开启的)
scrollView.bounces = NO;
//for循环创建七个UIImageView并且添加到滚动视图上面
for (int i = 0; i < 7; i ++) {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kWidth, kHeight)];
imageView.image = [UIImage imageNamed:[[NSString alloc] initWithFormat:@"h%d.jpeg",i + 1]];
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(kWidth * i, 0, kWidth, kHeight)];
scroll.delegate = self;
scroll.minimumZoomScale = 0.5;//最小缩放比例
scroll.maximumZoomScale = 2.0;//最大缩放比例
[scroll addSubview:imageView];
[scrollView addSubview:scroll];
[imageView release];
[scroll release];
}
[self.view addSubview:scrollView];
[scrollView release];
// Do any additional setup after loading the view.
}