您的位置:首页 > 产品设计 > UI/UE

UIScrollViewDelegate以及如何判断滚到底部

2015-01-26 14:16 621 查看
几个概念的理解:

contentSize:可滑动区域的大小 (即这个区域内的内容是可以滑动的!scrollview的frame
表示所有可滑动的内容,都在这个frame中进行滑动)

例子:

contentOffset:滑动视图里面的内容的相对位置
contentInset:滑动视图在外面的相对位置

1、只要view有滚动(不管是拖、拉、放大、缩小等导致)都会执行此函数
-(void)scrollViewDidScroll:(UIScrollView *)scrollView;
2、将要开始拖拽,手指已经放在view上并准备拖动的那一刻
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
3、将要结束拖拽,手指已拖动过view并准备离开手指的那一刻,注意:当属性pagingEnabled为YES时,此函数不被调用
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset;
4、已经结束拖拽,手指刚离开view的那一刻
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
5、view将要开始减速,view滑动之后有惯性
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
6、view已经停止滚动
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

7、view的缩放

-(void)scrollViewDidZoom:(UIScrollView *)scrollView

8、有动画时调用

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

滚到底部:

#pragma mark - 代理方法,当scrollview处于滚动状态时执行
在此判断是否滚动到底部
- (void)scrollViewDidScroll:(UIScrollView *)sv
{

CGPoint offset = sv.contentOffset;

CGRect bounds = sv.bounds;

CGSize size = sv.contentSize;

UIEdgeInsets inset = sv.contentInset;

CGFloat currentOffset = offset.y + bounds.size.height - inset.bottom;

CGFloat maximumOffset = size.height;

//当currentOffset与maximumOffset的值相等时,说明scrollview已经滑到底部了

if( (maximumOffset - currentOffset) <
40.0 ){

NSLog(@"-----我要刷新数据-----");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: