image.png
功能如圖艇潭,有表頭,項目祠饺,可以增刪行列
基本組成 tableView +CollectionView伍俘;
表頭是headView+ CollectionView
行組成 label + CollectionView
主要技術(shù)點是在聯(lián)動上,滑動cell上的item或者h(yuǎn)eader的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;
}
}
}
}
}