滚动视图本身不显示,或者只显示一个背景,主要负责子视图的滚动和翻页。是一个没有文字的TextView。多用于图片的显示,或者布局的更改(如,弹出键盘时,可以使用滚动视图,来操作布局向上滚动)
【注】UIScrollView常用有四个子类,UITextView,UITableView,UICollectionView,UIWebView
一.基本属性
//scrllerview创建
scrollview = [[UIScrollView alloc]init];
//属性
scrollview.frame = CGRectMake(0, 100,self.view.frame.size.width,300);
//横向滚动条是否显示
scrollview.showsHorizontalScrollIndicator = NO;
//纵向滚动条是否显示
scrollview.showsVerticalScrollIndicator = NO;
scrollview.backgroundColor = [UIColor redColor];
//是否有边界回探效果
scrollview.bounces = NO;
//是否在水平方向滚动到末尾时产生反弹
scrollview.alwaysBounceVertical = YES;
//纵向滚动到末尾时产生反弹
scrollview.alwaysBounceHorizontal
//控制视图滚动缩放超出最大和最小值内容是否还愿成以前
scrollview.bouncesZoom = YES;
//控制触摸内容视图时是否总是导致跟踪,若该值为yes那么当手指拖拽到足以滚动的距离时会触发touchuesCancelld:weithEnved:信息
scrollview.canCancelContentTouches = YES;
//返回滚动视图中的内容是否在提起手指后继续移动(只读属性),如用户已j不在拖拽内容但滚动在发生返回yes
scrollview.decelerating
//浮点,规定用户提起手指后滚动减速速度率
scrollview.decelerationRate = 1;
//滚动水平和垂直方向都被允许,若该属性为yes,那么当水平或垂直时只响应一个方向的滚动
scrollview.directionalLockEnabled = NO;
//表明用户是否开始滚动,该值可以需要滚动到一定距离才能显示yes
scrollview.dragging
/*浮动控制器的风格
UIScrollViewIndicatorStyleDefault,默认
UIScrollViewIndicatorStyleBlack,黑色
UIScrollViewIndicatorStyleWhite,白色
*/
scrollview.indicatorStyle = UIScrollViewIndicatorStyleWhite;
//控制手指到顶部的手指是否有效,是否允许手机点击顶部滑动的到顶部
scrollview.scrollsToTop = YES;
//是否分页显示
scrollview.pagingEnabled = YES;
//内容的最大缩放,同代理方法viewForZoomingInScrollView使用
scrollview.maximumZoomScale = 10;
//最小缩放
scrollview.minimumZoomScale = 1;
//最重要的两个属性//
//显示区域
// 内容视图第一次显示的坐标,初始显示坐标
scrollview.contentOffset = CGPointMake(0,0);
//滚动区域总和
//scrollview.contentSize
scrollview.contentSize = CGSizeMake(self.view.frame.size.width*3,300);
二.消除偏移量
self.automaticallyAdjustsScrollViewInsets = NO;//10之前使用 10之后判断一下用下面这个方法
scrollview.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
三.代理方法
/*
总结:代理方法第一步先走将要开始拖拽方法然后一直走didscroll然后在走345然后一直didscroll然后走6
*/
//滚动的时候调用,每次滚动都会调用
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
//我们可以在这里判断滑动方向
NSLog(@"%f",scrollView.contentOffset.x);
}
//将要拖拽的时候调用 第一步先走这个代理方法
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"2将要拖拽的时候调用我%f",scrollView.contentOffset.x);
}
//将要结束拖拽时调用
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
NSLog(@"3将要结束拖拽的时候调用我");
}
//结束拖拽的时候调用
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"4结束拖拽了");
}
//将要减速的时候调用
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
NSLog(@"5我将要减速");
}
//结束减速过程调用,当设置分页显示的时候一定会调用这个方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"6减速结束了嗲用");
}
//已经结束滑动调用
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
NSLog(@"7借宿滚动调用");
}
四.UIPageControl和广告栏(照片墙)
1)@property(nonatomic)NSInteger numberOfPages;
设置总页数
2)@property(nonatomic)NSInteger currentPage;
设置当前页,页数从0开始
3)@property(nonatomic,getter=isUserInteractionEnabled)BOOL userInteractionEnabled;
userInteractionEnabled 视图的用户交互属性,设置为NO后,视图无法响应用户的交互行为
4)@property(nonatomic,retain)UIColor *currentPageIndicatorTintColor
设置当前点的颜色
5)@property(nonatomic,retain)UIColor *pageIndicatorTintColor
设置其它点的颜色