美文网首页UI
iOS开发 关于 创建Excel类型表格

iOS开发 关于 创建Excel类型表格

作者: 字母大师 | 来源:发表于2018-01-10 17:26 被阅读0次
    image.png

    功能如图,有表头,项目,可以增删行列
    基本组成 tableView +CollectionView;
    表头是headView+ CollectionView
    行组成 label + CollectionView

    主要技术点是在联动上,滑动cell上的item或者header的item要形成一个整体
    tableView 和 CollectionView都继承与scrollView
    我们可以让他们contentOffset保持一致

    - (void)scrollViewDidScroll:(UIScrollView*)scrollView
    {
        if ([scrollView isKindOfClass:[UICollectionView class]]) {
            
            if (scrollView.contentOffset.y != 0) {
                scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, 0);
                return;
            }
            for (TJXExcelTableViewCell* cell in self.tableView.visibleCells) {
                for (UIView *view in cell.contentView.subviews) {
                    if ([view isKindOfClass:[UICollectionView class]]) {
                        UICollectionView *collectionView = (UICollectionView *)view;
                        collectionView.contentOffset = scrollView.contentOffset;
                    }
                }
            }
    //
            [self.parm setValue:[NSValue valueWithCGPoint:scrollView.contentOffset] forKey:JXContentTableViewCellCollectionViewObserver];
        }
    }
    
    #pragma mark lazyLoading
    -(UITableView *)tableView{
        if (!_tableView) {
            _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, LSDScreenW, LSDScreenH-64) style:(UITableViewStylePlain)];
            _tableView.delegate = self;
            _tableView.dataSource = self;
            self.tableView.estimatedSectionHeaderHeight = 0;
            self.tableView.estimatedSectionFooterHeight = 0;
            self.tableView.bounces = NO;
            self.tableView.showsVerticalScrollIndicator = NO;
            self.tableView.showsHorizontalScrollIndicator = NO;
        }
        return _tableView;
    }
    -(void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context{
        if ([keyPath isEqualToString:TopCollectionViewObserver]) {
            for (TJXExcelTableViewCell* cell in self.tableView.visibleCells) {
                for (UIView *view in cell.contentView.subviews) {
                    if ([view isKindOfClass:[UICollectionView class]]) {
                        UICollectionView *collectionView = (UICollectionView *)view;
                        collectionView.contentOffset =  topview.collectionView.contentOffset;
                    }
                }
            }
        }
        if ([keyPath isEqualToString:JXContentTableViewCellCollectionViewObserver]) {
            for (TJXExcelTableViewCell *cell in self.tableView.visibleCells) {
                for (UIView *view in cell.contentView.subviews) {
                    if ([view isKindOfClass:[UICollectionView class]]) {
                        UICollectionView *collectionView = (UICollectionView *)view;
                       topview.collectionView .contentOffset = collectionView.contentOffset;
                    }
                }
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:iOS开发 关于 创建Excel类型表格

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