1

我有一个嵌套UIScrollView在另一个里面,两者都是水平的。

外部包含多个UIScrollViews,假设每页一个(具有多页的文档)。内部的可以只包含一个UIView适合屏幕的,也可以包含一些更大UIView的也应该滚动(通常是水平的,但如果用户捏住屏幕,那么他可以双向滚动)。

当我快速滚动文档并且外部滚动视图只是决定滚动其子视图,而不让内部滚动视图(那些 contentSize 大于屏幕大小的视图)根本滚动时,就会出现问题。如果我轻轻滚动外部滚动视图,它也会让内部滚动视图也滚动。

期望的行为是,即使我快速滚动外部滚动视图,它也应该滚动内部滚动视图,直到其内容完全显示,然后才让外部滚动视图滚动。

我尝试覆盖hitTest:withEvent:,以便外部滚动视图应该询问其当前可见的UIScrollView子视图是否应该滚动,但这目前仅在向前滚动时有效。问题是我无法检测到滚动方向hitTest:withEvent:,所以我也在考虑将这段代码移到其他地方,但我不知道这是否是正确的方法。

我很抱歉句子中的所有“滚动”词,但我不知道如何更好地解释这一点

4

1 回答 1

0

如果外部 scrollView 仍然动画移动,它将获取所有手势,而不是让内部处理它们。

您可以尝试使用 gestureRecognizer 的 requireGestureRecognizerToFail: 方法,以便外部滚动视图的 panGestureRecognizer 需要外部滚动视图的 panGestureRecognizers 失败。这可能会使滚动感觉有点迟钝,我不确定这是否能解决您的问题,但是嘿,尝试一下也无妨。

于 2013-07-08T12:25:07.697 回答