思路一:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
自定义顶层的tableView,在自定义的tableView中实现该方法,
然后根据tableView的contentOffset决定是顶部tableView滚动还是底部tableView滚动,
如果是顶部滚动,就在底部tableView的ScrollDidScroll方法中 设置底部tableView的contentOffset为固定值
如果是底部tableView滚动,就在顶部tableView的scrollDidScroll方法中,设置顶部table的contentOffset为固定值
至于固定值是多少,跟你你的需求来定。
重写方法的作用是让手势事件一直往底层传递,不论最顶层是否有对象响应该事件。
作者:光潇
链接:https://www.zhihu.com/question/41716469/answer/118275997
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
例子:https://github.com/RangoLee/MFNestTableView
https://github.com/Fdevelopmenter/UITableViewNesting
思路二:
在内嵌的collectionView进行布局的时候,拿到contentSize的高度h,然后在更新tableView cell的高度等于h.
在tableView cellForRow阶段对cell中的collectionView reloadData,然后调用layoutIfNeeded()获取到的contentSize,并记录下这个高度h
本文介绍了两种实现嵌套UITableView和UICollectionView滚动同步的解决方案。思路一是通过自定义顶层tableView,重写UIGestureRecognizer的相关方法,允许手势事件传递并根据contentOffset判断哪个视图滚动。思路二是通过调整cell中collectionView的高度并实时更新,实现滚动同步。文中提供了相关代码示例和开源项目链接供参考。
3099

被折叠的 条评论
为什么被折叠?



