实现tableView和collectionView的相互关联方法

最近比较忙,没事帮别人做个小Demo,其实很简单.不用多少时间,看看核心实现吧.

用到的方法

#pragma mark 返回头视图 / 尾视图 通过kind判断

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath


//这个就不多说了

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    if (scrollView ==self.collectionView) {

        if (isGetWhatWay ==YES) {

            // collectionView在控制器view的中心点转化成collectionView上的坐标

            CGPoint pInView = [selfconvertPoint:self.collectionView.centertoView:self.collectionView];

            // 获取这一点的indexPath

            NSIndexPath *indexPathNow = [self.collectionViewindexPathForItemAtPoint:pInView];

            if (indexPathNow.section ==0) {

                //获取所有collectionView的头视图(也可用item)

                NSArray *array = [self.collectionViewindexPathsForVisibleSupplementaryElementsOfKind:UICollectionElementKindSectionHeader];

                if ([[arrayfirstObject]section] ==0 || [[arrayfirstObject]section] ==1) {

                    NSIndexPath *tabIndexPath = [NSIndexPathindexPathForRow:0inSection:0];

                    [self.tableViewselectRowAtIndexPath:tabIndexPathanimated:NOscrollPosition:UITableViewScrollPositionNone];

                    [self.tableViewscrollToRowAtIndexPath:tabIndexPathatScrollPosition:UITableViewScrollPositionTopanimated:YES];

                }

                return;

            }

            NSIndexPath *tabIndexPath = [NSIndexPathindexPathForRow:indexPathNow.sectioninSection:0];

            [self.tableViewselectRowAtIndexPath:tabIndexPathanimated:NOscrollPosition:UITableViewScrollPositionNone];

            [self.tableViewscrollToRowAtIndexPath:tabIndexPathatScrollPosition:UITableViewScrollPositionTopanimated:YES];

        }

    }

}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {

    if (scrollView ==self.collectionView) {

        isGetWhatWay =YES;

    }

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    isGetWhatWay =NO;

    NSIndexPath *index = [NSIndexPathindexPathForRow:0inSection:indexPath.row];

    [self.collectionViewscrollToItemAtIndexPath:indexatScrollPosition:UICollectionViewScrollPositionCenteredVerticallyanimated:YES];

}



#warning 注册头视图

        [_collectionViewregisterClass:[UICollectionReusableViewclass]forSupplementaryViewOfKind:UICollectionElementKindSectionHeaderwithReuseIdentifier:@"HeaderCollectionReusableView"];

        [_collectionViewregisterClass:[UICollectionReusableViewclass]forSupplementaryViewOfKind:UICollectionElementKindSectionFooterwithReuseIdentifier:@"FooterCollectionReusableView"];



#pragma mark 返回头视图的高度

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section

#pragma mark 返回尾视图的高度

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值