在UIScrollView中的UIView中的UITableView。当滚动UITableView时,不要滚动UIScrollView。

3
我有一个UITableView嵌套在一个UIView中,而该UIView又嵌套在一个UIScrollView中。问题是:当我滚动/拖动UITableView时,UIScrollView也会滚动。
我需要的是让UITableView不将滚动传递给UIScrollView。同时,我需要能够直接滚动UIScrollView。 如何实现呢? 谢谢!
2个回答

1
我使用表格视图上的“hitTest”进行了修复。
 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

如果事件源于tableview,则禁用其父级scrollview的滚动。当tableview的滚动结束(scrollViewDidEndDragging)时,重新启用父级scrollview的滚动。这样做似乎运行良好。

0

将代理设置为您的表视图滚动视图(即您的视图控制器)

tableView.scrollView.delegate = self;

然后使用这两个调用

 scrollViewDidScroll:
 scrollViewDidEndDragging:willDecelerate:

禁用并重新启用外部scrollView的scrollEnabled属性


它不起作用。由于某种原因,父滚动视图先被调用,然后才调用表视图的scrollViewDidScroll。 - Victor C.
你的ScrollView有什么作用?TableView是否总是在ScrollView底部? - Marc-Alexandre Bérubé
是的,它总是在底部,大小固定。我通过在表视图上使用 hittest 来解决了这个问题。谢谢你的帮助。 - Victor C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接