scrollview tableView嵌套问题怎么解决(scrollview,tableview,开发技术)

时间:2024-04-30 05:31:14 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

本文小编为大家详细介绍“scrollviewtableView嵌套问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“scrollviewtableView嵌套问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

正文

大致思路:外层放置scrollview作为容器,容器内上部分topView,下部分tableView。当tableView滚动时,如果topView还在展示区域,就设置topView的y坐标,让topView跟随同步上移。

(注意:如果不设置tableView的headerView,tableView、和topView都会同时上移不是我想要的效果,所以设置tableView的headerView高度包括topView的高度,达到了完美的效果,具体实现看demo)

效果预览:

scrollview tableView嵌套问题怎么解决

NestScrollView.gif

核心代码就是在父视图、子试图的滚动判断

//父视图滚动的回调,用于横向滚动判断

//父视图滚动的回调,用于横向滚动判断-(void)scrollViewDidScroll:(UIScrollView*)scrollView{CGFloatplaceholderOffset=0;if(self.topView.selectedIndex==0){if(self.firstTableView.contentOffset.y>CGRectGetHeight(self.topView.frame)-kItemheight){placeholderOffset=CGRectGetHeight(self.topView.frame)-kItemheight;}else{placeholderOffset=self.firstTableView.contentOffset.y;}[self.secondTableViewsetContentOffset:CGPointMake(0,placeholderOffset)animated:NO];}else{if(self.secondTableView.contentOffset.y>CGRectGetHeight(self.topView.frame)-kItemheight){placeholderOffset=CGRectGetHeight(self.topView.frame)-kItemheight;}else{placeholderOffset=self.secondTableView.contentOffset.y;}[self.firstTableViewsetContentOffset:CGPointMake(0,placeholderOffset)animated:NO];}}

//子视图滚动的回调,用于竖直方向上滚动判断

//子视图滚动的回调,用于竖直方向上滚动判断-(void)updateTopViewFrame:(UIScrollView*)scrollView{CGFloatplaceHolderHeight=CGRectGetHeight(self.topView.frame)-self.topView.itemHeight;CGFloatoffsetY=scrollView.contentOffset.y;CGFloaty=0.0;if(offsetY>=0&&(offsetY<=placeHolderHeight)){y=-offsetY;}elseif(offsetY>placeHolderHeight){y=-placeHolderHeight;}elseif(offsetY<0){y=-offsetY;}[self.topViewmas_updateConstraints:^(MASConstraintMaker*make){make.top.offset(y+kNavBarHeight);}];}

读到这里,这篇“scrollviewtableView嵌套问题怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

本文:scrollview tableView嵌套问题怎么解决的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎么用vue+elementUI封装一个根据后端变化的动态table下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18