我在另一个内嵌了UIScrollView
,两者都是水平的。
外部一个包含多个UIScrollViews
,假设每页一个(具有多个页面的文档)。
内部可以只包含适合屏幕的UIView
或者也可以包含一些应该滚动的更大的UIView
(水平放置,但如果用户捏住屏幕,那么他可以向两个方向滚动) 。
当我快速滚动文档并且外部滚动视图决定滚动其子视图时,问题就出现了,而不让内部滚动视图(那些contentSize大于屏幕大小的滚动视图)滚动。 如果我轻轻滚动外部滚动视图,它会让内部滚动视图也滚动。
理想的行为是,即使我快速滚动外部滚动视图,它也应滚动内部滚动视图,直到其内容已完全显示,然后让外部滚动视图滚动。
我尝试覆盖hitTest:withEvent:
,以便外部滚动视图应询问其当前可见的UIScrollView
子视图是否应该滚动,但这当前仅在向前滚动时才有效。问题是我无法检测到hitTest:withEvent:
中的滚动方向,所以我也在考虑将此代码移到其他地方,但我不知道这是否是正确的方法。
我很抱歉句子中的所有“滚动”字样,但我不知道如何以更好的方式解释这个问题
答案 0 :(得分:0)
如果外部scrollView仍然动画移动,它将获得所有手势,而不是让内部手柄处理它们。
您可以尝试使用gestureRecognizer的requireGestureRecognizerToFail:方法,以便外部滚动视图的panGestureRecognizer需要外部scrollViews的panGestureRecognizer失败。它可能会使滚动感觉有点滞后,我不确定这是否会解决你的问题,但嘿,尝试没有伤害。