cell嵌套tableView 滑动联动 滑到最底部无法滑动

cell里嵌套tableView,需要根据偏移量判断滑动主tableView还是滑动cellTableView,让用户体验感觉是一个整体。
做的过程碰到个问题,就是滑动到最底部,cellTableView无法继续上拉滑动了,下边有解决方法。
粘贴了主要代码,完整逻辑可见demo:https://github.com/zhuzi55/LYCellTableViewDemo.git

SecondViewController.m

#pragma mark - 外部tableview滑动
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSLog(@"tableview滑动 == %.2f", scrollView.contentOffset.y);
    
    if (self.tableViewCanScroll == NO) {
        self.tableView.contentOffset = CGPointMake(0, kHeaderViewHight);
    }
    
    if (self.tableView.contentOffset.y >= kHeaderViewHight) {
        // 无表头了
        NSLog(@"++++++");
        self.cellTableViewCanScroll = YES;
        self.tableViewCanScroll = NO;
        self.tableView.contentOffset = CGPointMake(0, kHeaderViewHight);
        
    }

}


#pragma mark - cell嵌套列表滑动控制 通过偏移量判断是外部滑动还是内部滑动
-(void)cellTableViewScroll:(UIScrollView *)scrollView{
    NSLog(@"cellTableview滑动 == %.2f", scrollView.contentOffset.y);

    if (self.cellTableViewCanScroll == NO) {
        scrollView.contentOffset  = CGPointZero;
    }
    if (scrollView.contentOffset.y < 0) {
        self.cellTableViewCanScroll = NO;
        self.tableViewCanScroll = YES;
    }
    
}
-(void)cellTableViewDidEnedScroll:(UIScrollView *)scrollView{
    CGFloat maxOffsetY = scrollView.contentSize.height - scrollView.frame.size.height;
    if (scrollView.contentOffset.y >= maxOffsetY) {
        scrollView.contentOffset = CGPointMake(0, maxOffsetY-1);
    }
}


TestTableViewCell.m

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
    if ([self.delegate respondsToSelector:@selector(cellTableViewDidEnedScroll:)]) {
        [self.delegate cellTableViewDidEnedScroll:scrollView];
    }
}
//
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    if ([self.delegate respondsToSelector:@selector(cellTableViewScroll:)]) {
        [self.delegate cellTableViewScroll:scrollView];
    }
    
}

TestUITableView.m

//** 让手势支持多响应
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
    return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容