• 瀑布流实现原理


    瀑布流实现原理

    在视图中添加多个视图,当划动其中一个视图时,调用协议方法让其他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/ 版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware
    03-nginx虚拟主机配置
    解决nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
    02-nginx信号量
    RedHat Linux设置yum软件源为本地ISO
    01-nginx介绍及编译安装
    Linux.负载均衡
    01-MySQL优化大的思路
    10 华电内部文档搜索系统 search02
    10 华电内部文档搜索系统 search03
  • 原文地址:https://www.cnblogs.com/PaulpauL/p/4935282.html
Copyright © 2020-2023  润新知