1

我的观点面临一个复杂的问题,我会尽量做到清晰和具体,如果有什么不清楚的地方请说出来。

我有一个包含更大视图(ContentView)的 ScrollView。我希望这个 ScrollView 使用两个(或更多)手指滑动来滚动。在 contentView 中,我有几个名为 barView 的自定义视图实例。这些 barview 类似于 uislider,但有一些自定义。为了能够滑动这些条形视图,我使用“touchesMoved”方法来跟踪触摸。但是,每当我想使用多点触控滑动浏览视图时,它也会触发 barviews 上的方法。如何防止 barviews 被多点触控滑动操作?

提前谢谢了!

4

1 回答 1

0

您可以使用 PanGestureRecognizers 来跟踪 barViews 上的触摸。设置它们时,您设置:

[panGestureRecognzer requireGestureRecognizerToFail:scrollViewSwipeGestureRecognizer]

这确保了 bar 视图上的gestureRecognizers 只能在滚动视图上的滑动手势失败时触发。

或者,如果您的 scrollView 仅在使用 2 个手指时滚动,您可以将以下内容添加到 barView 的 touchesMoved 方法中:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ([touches count] > 1)
        return;
    /...
}
于 2012-10-24T13:36:03.070 回答