美文网首页
cell嵌套tableView 滑动联动 滑到最底部无法滑动

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

作者: 木子李55 | 来源:发表于2022-07-05 15:56 被阅读0次

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;
}

相关文章

网友评论

      本文标题:cell嵌套tableView 滑动联动 滑到最底部无法滑动

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