iOS开发之UIScrollView相关代理方法

一般控制如果使用tableView等,可能就需要设置上下滑动触发某些事件,那么UIScorllView代理方法就派上用场,相应的方法如下,根据他人资料和自己经验调整,有错误请在评论留言,谢谢.

/*
// 返回一个放大或者缩小的视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
     
}
// 开始放大或者缩小
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:
(UIView *)view
{
     
}
 
// 缩放结束时
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
     
}
  
// 视图已经放大或缩小
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScrollToTop");
}
 */
 
// 是否支持滑动至顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
    return YES;
}
 
// 滑动到顶部时调用该方法
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
    NSLog(@"scrollViewDidScrollToTop");
}
 
// scrollView 已经滑动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{

//常用一般是这个,比如浏览淘宝的时候,
//有个回到顶部按钮,向上滑动按钮隐藏,
//向下滑动则显示,就是调用了这个方法
    NSLog(@"scrollViewDidScroll");
}
 
// scrollView 开始拖动
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    NSLog(@"scrollViewWillBeginDragging");
}
 
// scrollView 结束拖动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    NSLog(@"scrollViewDidEndDragging");
}
 
// scrollView 开始减速(以下两个方法注意与以上两个方法加以区别)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"scrollViewWillBeginDecelerating");
}
 
// scrollview 减速停止
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
   NSLog(@"scrollViewDidEndDecelerating"); 
}

例子:

Paste_Image.png

iOS开发之UIScrollView相关代理方法_第1张图片
Paste_Image.png

详细代码:

/**
 *  滑动记录变量
 */
@property (nonatomic,assign) float oldOffset;
#pragma mark -- 监控滑动手势,判断是否隐藏头部
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    
    //如果当前位移大于缓存位移,说明向上滑动
    if (scrollView.contentOffset.y > self.oldOffset +20) {

        //执行你要的事件        
    }
    else if(scrollView.contentOffset.y < self.oldOffset){
        
         //执行你要的事件 
    }
    
    //将当前位移变成缓存位移
    self.oldOffset = scrollView.contentOffset.y;

}

你可能感兴趣的:(iOS开发之UIScrollView相关代理方法)