您的位置:首页 > 新闻 > 会展 > 酒店品牌推广方案_上哪里建设个人网站_网推是什么_软件外包公司排行榜

酒店品牌推广方案_上哪里建设个人网站_网推是什么_软件外包公司排行榜

2025/5/18 17:32:19 来源:https://blog.csdn.net/LIUXIAOXIAOBO/article/details/145092134  浏览:    关键词:酒店品牌推广方案_上哪里建设个人网站_网推是什么_软件外包公司排行榜
酒店品牌推广方案_上哪里建设个人网站_网推是什么_软件外包公司排行榜

我们有这样一个场景,就是页面上有一个大的tableView,
每一个cell都是和屏幕一样高的,然后cell中还有一个可以
tableView,比如直播间的情形,这个时候如果我们拖动
cell里面的tableView滚动的话,如果滚动到内部tableView的边缘,会带动外层的tableView滚动,效果如下
请添加图片描述

这是iOS ScrollView嵌套使用时候自带的一个机制,但是这个效果是我们不想要的,我们想要的效果是我们滚动cell里面的tableView的时候,滚动到边缘,不会带动外层的tableView滚动
经过调试,发现,我们拖动cell中的tableView的时候,
如果该tableView 已经滚动到边缘了,则cell中的tableView不会滚动,系统会自动处理,会执行外部的滚动,这个时候是没有问题的,符合我们的需求,
还有一种情况是需要我们处理的,就是当我们滚动
cell里面的tableView (a)的时候,cell里面的tableView没有滚动到边缘,这个时候,当该a 滚动到边缘,就会带动
外层的tableView滚动,这是我们不想要的,
我们可以这样处理,自定义一个tableView, 重写
gestureRecognizerShouldBegin 方法,在该方法里面,
将外层tableView设置为不可滚动
即,
这里要知道一个机制,就是,如果我们开始拖动的时候,a已经滚动到边缘了,则他的 gestureRecognizerShouldBegin
不会调用

@interface LBConfictTableView () <UIGestureRecognizerDelegate>@end@implementation LBConfictTableView- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{NSLog(@"哈哈哈哈哈哈内层的开始方法内层的开始方法");self.bigTableView.scrollEnabled = NO;return YES;
}@end

然后在停止滚动的时候,将外层tableView设置为可以滚动

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{self.tableView.bigTableView.scrollEnabled = YES;
}

看效果图
请添加图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com