头视图,多视图左右划,上划分类视图可悬停,多视图可加上拉下拉刷新数据

    科技2022-07-10  126

    国庆三天班要结束啦,,期间写了一个控件。tablview 带头视图,,带分页,头视图滑上去,,分页标题可悬停功能

     

     

     思路: 最底层是tableview 带头视图,悬停部分是tableview 的分区view,下面是一个cell,cell的高度是屏幕高减去悬停view的高

    cell中添加UIPageViewController,,所有分页都是UIviewcontroller 每个分页视图中都可以添加下拉和上拉更新数据

    核心内容

    1.对底部tableview 添加手势穿透,,可以同时响应分页中UIviewcontroller中tableview 和 底部tableview的同时滑动

    class NUITableView: UITableView,UIGestureRecognizerDelegate {

        func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {

            return true

        }

    }

    创建底部tableview 使用NUITableView

    2. 设置分页中UIviewcontroller中tableview 何时contentoffset.y = 0

     

    底部tableview:

    func scrollViewDidScroll(_ scrollView: UIScrollView) {

            SecondTool.instance.SecondScrollH = scrollView.contentOffset.y

            if SecondTool.instance.pageScrollH > 0 { // 当头视图划出屏幕时,也是分类UIviewcontroller中的tableview 向上划出屏幕时

                self.tableView.contentOffset.y = headerViewH

            }

        }

     

    分类UIviewcontroller中的tableview:

    func scrollViewDidScroll(_ scrollView: UIScrollView) {

            SecondTool.instance.pageScrollH = scrollView.contentOffset.y

    // 当底部tableview在头视图可见范围内时,,设置tableview的contentOffset.y = 0

            if SecondTool.instance.SecondScrollH < self.headerViewH && SecondTool.instance.SecondScrollH > 0{

                self.tableView.contentOffset.y = 0

            }

     

        }

     

    Processed: 0.009, SQL: 8