iOS 仿Excel 实现

作者: 赵哥窟 | 来源:发表于2021-05-27 16:41 被阅读0次

    今天有个需求需要实现Excel的效果:如图


    image.png

    提醒

    这只是一个demo,没有考虑那么多需求,也只是提供一个学习的思路。有具体的需求可以修改代码,避免重复造轮子。

    实现的思路

    顶部的Header
    最左侧[左上头]放的是一个UILabel,后面就放的是一个UICollectionView。

    头部下面
    头部下面整体是一个UITableView,然后每个Cell的Header部分也是UlLabel,后面也是一个UICollectionView

    难的部分

    左右滚动
    左右滚动的时候左边Header和顶部Header最左边固定,其他部分跟随滚动

    上下滚动
    顶部Header固定,其他部分跟随滚动

    滚动部分核心代码

    整个滚动Demo就这部分难一点,其他的都很简单,看看都懂的。

    - (void)scrollViewDidScroll:(UIScrollView*)scrollView
    {
        if ([scrollView isKindOfClass:[UICollectionView class]]) {
            if (scrollView.contentOffset.y != 0) {
                scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, 0);
            }
            NSLog(@"scroll %f",scrollView.contentOffset.x);
            
            self.topExcelCollectionView.contentOffset = scrollView.contentOffset;
            
            for (ExcelTableCell* cell in self.excelTableView.visibleCells) {
                for (UIView *view in cell.contentView.subviews) {
                    if ([view isKindOfClass:[UICollectionView class]]) {
                        UICollectionView *collectionView = (UICollectionView *)view;
                        collectionView.contentOffset = scrollView.contentOffset;
                        self.cacheContentOffset = CGPointMake(scrollView.contentOffset.x, scrollView.contentOffset.y);
                    }
                }
            }
            
        }else{
            self.topExcelCollectionView.contentOffset = self.cacheContentOffset;
            
            for (ExcelTableCell* cell in self.excelTableView.visibleCells) {
                for (UIView *view in cell.contentView.subviews) {
                    if ([view isKindOfClass:[UICollectionView class]]) {
                        UICollectionView *collectionView = (UICollectionView *)view;
                        collectionView.contentOffset = self.cacheContentOffset;
                    }
                }
                
            }
        }
        
    }
    

    Demo
    下载地址

    相关文章

      网友评论

        本文标题:iOS 仿Excel 实现

        本文链接:https://www.haomeiwen.com/subject/lbkdsltx.html