瀑布流实现原理

瀑布流实现原理

在视图中添加多个视图,当划动其中一个视图时,调用协议方法让其他scrollView也跟着划动.

//瀑布流的核心代码:当一个表视图偏移时,设置另一个表视图也偏移同样的坐标

//在滚动内容时调用此方法(有任何的内容偏移都会调用)

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

    if(scrollView==_tableView1){

        CGPoint pt=_tableView1.contentOffset;

        [_tableView2 setContentOffset:pt];

    }

    else{

        CGPoint pt=_tableView2.contentOffset;

        [_tableView1 setContentOffset:pt];

    }

}

其他scrollView的代理方法<UIScrollViewDelegate>

// 发生任何偏移时

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

// 任何比例缩放

- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2); 

// 开始拖动时调用 (也可能在移动一段时间或距离后调用)

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

// 手指将要抬起停止拖动时调用

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0);

// 手指抬起停止拖动时调用,抬起后视图还会移动一段距离,慢慢减速到停止

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

//手指将要开始拖动时调用

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

//停止拖动时调用

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

//结束动画时调用

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

//返回一个放大的视图

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

//将要开始缩放视图时调用

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2); 

//结束缩放时调用

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale; 

//当点击status bar时是否将视图滚到顶部,默认是YES

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;

//滚到顶部时调用,如果已经在顶部,可能会马上调用

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

http://www.cnblogs.com/PaulpauL/ 版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:https://www.cnblogs.com/PaulpauL/p/4935282.html