一般控制如果使用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");
}
例子:
详细代码:
/**
* 滑动记录变量
*/
@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;
}