总结的挺全面的
NSLog(@"ContentOffset x is %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);
NSLog(@"scrollViewWillBeginDragg ing");
NSLog(@"scrollViewDidEndDragging ");
NSLog(@"scrollViewWillBeginDecel erating");
NSLog(@"scrollViewDidEndDecelera ting");
NSLog(@"scrollViewDidEndScrollin gAnimation");
NSLog(@"viewForZoomingInScrollVi ew");
return viewA;
viewA.frame=CGRectMake(50,0, 100, 400);
NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");
NSLog(@"scrollViewShouldScrollTo Top");
return YES;
NSLog(@"scrollViewDidScrollToTop ");
原文地址:iOS中UIScrollView属性
作者:小果冻
UIScrollView的属性总结
属性 | 作用 |
CGPoint contentOffSet | 监控目前滚动的位置 |
CGSize contentSize | 滚动范围的大小 |
UIEdgeInsets contentInset | 视图在scrollView中的位置 |
id delegate | 设置协议 |
BOOL directionalLockEnabled | 指定控件是否只能在一个方向上滚动 |
BOOL bounces | 控制控件遇到边框是否反弹 |
BOOL alwaysBounceVertical | 控制垂直方向遇到边框是否反弹 |
BOOL alwaysBounceHorizontal | 控制水平方向遇到边框是否反弹 |
BOOL pagingEnabled | 控制控件是否整页翻动 |
BOOL scrollEnabled | 控制控件是否能滚动 |
BOOL showsHorizontalScrollInd | 控制是否显示水平方向的滚动条 |
BOOL showsVerticalScrollIndic | 控制是否显示垂直方向的滚动条 |
UIEdgeInsets scrollIndicatorInsets | 指定滚动条在scrollerView中的位置 |
UIScrollViewIndicatorSty indicatorStyle | 设定滚动条的样式 |
float decelerationRate | 改变scrollerView的减速点位置 |
BOOL tracking | 监控当前目标是否正在被跟踪 |
BOOL dragging | 监控当前目标是否正在被拖拽 |
BOOL decelerating | 监控当前目标是否正在减速 |
BOOL delaysContentTouches | 控制视图是否延时调用开始滚动的方法 |
BOOL canCancelContentTouches | 控制控件是否接触取消touch的事件 |
float minimumZoomScale | 缩小的最小比例 |
float maximumZoomScale | 放大的最大比例 |
float zoomScale | 设置变化比例 |
BOOL bouncesZoom | 控制缩放的时候是否会反弹 |
BOOL zooming | 判断控件的大小是否正在改变 |
BOOL zoomBouncing | 判断是否正在进行缩放反弹 |
BOOL scrollsToTop | 控制控件滚动到顶部 |
这里把UIScrollView的几个要点总结下:
从你的手指touch屏幕开始,scrollView开始一个timer,如果:
1. 150ms内如果你的手指没有任何动作,消息就会传给subView。
2. 150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView。
3. 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。
观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。
delaysContentTouches的作用:
这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。
cancelsTouches的作用:
这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生。
OS UIScrollView代理方法有很多,从头文件中找出来学习一下
//只要滚动了就会触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
{
// NSLog(@" scrollViewDidScroll");
}
//开始拖拽视图
- (void)scrollViewWillBeginDragg ing:(UIScrollView *)scrollView;
{
}
//完成拖拽
- (void)scrollViewDidEndDragging :(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
{
}
//将开始降速时
- (void)scrollViewWillBeginDecel erating:(UIScrollView *)scrollView;
{
}
//减速停止了时执行,手触摸时执行执行
- (void)scrollViewDidEndDecelera ting:(UIScrollView *)scrollView;
{
}
//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时
- (void)scrollViewDidEndScrollin gAnimation:(UIScrollView *)scrollView;
{
}
//设置放大缩小的视图,要是uiscrollview的subview
- (UIView *)viewForZoomingInScrollVi ew:(UIScrollView *)scrollView;
{
}
//完成放大缩小时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;
{
}// scale between minimum and maximum. called after any 'bounce' animations
//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它
- (BOOL)scrollViewShouldScrollTo Top:(UIScrollView *)scrollView;
{
}
- (void)scrollViewDidScrollToTop :(UIScrollView *)scrollView;
{
}