UIScrollView
- UIScrollView是所有滚动视图的基类
创建UIScrollView
#define WIDTH self.view.frame.size.width
#define HEIGHT self.view.frame.size.height
// 1.创建一个和屏幕等尺寸的
UIScrollView UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, WIDTH,HEIGHT)];
// 2.设置背景颜色
scrollView.backgroundColor = [UIColor yellowColor];
// 3.把scrollView放到self.view上显示
[self.view addSubview:scrollView];
// 4.内存管理
[scrollView release];
// ⽔水平⽅方向滚动
scrollView.contentSize = CGSizeMake(WIDTH * 7, 0);
// 垂直⽅方向滚动
scrollView.contentSize = CGSizeMake(0, 7 * HEIGHT);
偏移量contentOffset
//通过偏移量让指定视图显示
scrollView.contentOffset = CGPointMake(WIDTH, 0);
// 直接设置第二个视图显示在屏幕上
UIScrollView属性
//创建好之后我们对UIScrollView其他的属性进行设置。
scrollView.contentOffset = CGPointMake(WIDTH, 0);
// 想让哪张图⽚片最先显⽰示通过设置偏移量完成
scrollView.pagingEnabled = YES;
// 可以让ScrollView按⻚页来滚动
scrollView.showsHorizontalScrollIndicator = NO;
// 关闭⽔水平⽅方向滚动条
scrollView.showsVerticalScrollIndicator = NO;
// 关闭垂直⽅方向滚动条
scrollView.bounces = NO;
// 关闭边界回弹效果
scrollView.tag = 1000;
// 设定⼀一个tag值
UIScrollView协议
//监控滚动状态
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
// 只要是拖拽scrollView就会触发这个方法
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
// 开始拖拽的时候会触发这个方法
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
// 当结束拖拽的时候会触发这个方法
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
// 当滚动减速的时候会触发这个方法
- (void)scrollViewDidEndDecelerating:(UIScrollView
// 当滚动彻底停止的时候会触发这个方法
UIScrollView控制视图缩放
scrollView.maximumZoomScale = 2;
// 设置最大的缩放最大比例
scrollView.minimumZoomScale = 0.5;
// 设置最大的缩放最小比例
scrollView.zoomScale = 1;
// 设置当前的比例
当我们在ViewDidLoad方法里设置好最大和最小的缩放
比例这两个属性之后我们就可以对视图进行缩放操作
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
// 指定某个UIScrollView的子视图可以进行方法缩小操作
习题:在Scroll中缩放图片
Scroll内对图片缩放
//方法为图片放入一个小的ScrollSmall 再将小的ScrollSmall放入大的ScrollBig
//第一部分缩放
— (UIView *)viewForZoomingInScrollView:(UIScrollView
*)scrollView
{
UIImageView *imageView = [scrollView.subviews
objectAtIndex:0];
return imageView;
}
//第二部分还原
-(void)scrollViewDidEndDecelerating:(UIScrollView
*)scrollView{
// 先从负责滚动的⼤大scrollView找到他的⼦子视图
for (UIScrollView *sView in scrollView.subviews){
// 在根据⼦子类的对象类型进⾏行判断
if ([sView isKindOfClass:[UIScrollView class]]){
// 把视图的尺⼨寸恢复到原有尺⼨寸 sView.zoomScale = 1.0;
}
}
}
习题2:UIPageControl小圆点跟随Scroll视图移动
效果为:
-
<