模拟scrollview中的拖动

时间:2011-02-26 05:36:39

标签: iphone ios uiscrollview multi-touch

:)我正在进行拦截,并重新发送发送到滚动视图的手势。

我想做什么:

杀死scrollview中的所有gestureRecognizers。我已经完成了这个。

在scrollview中添加新的gestureRecognizers。我也完成了这个。

使新识别器的行为与旧识别器相同。我没有完成这个,我需要帮助。

我添加的唯一新识别器是平移手势识别器,需要至少两个手指。我希望它的行为与单指滚动完全相同。 :)

在响应新识别器生成的回调以完成此操作时,我必须发送什么样的调用?

2 个答案:

答案 0 :(得分:4)

我认为你通过尝试实现自己的自定义手势识别器来过度复杂化。

UIPanGestureRecognizer类有一个minimumNumberOfTouches属性,您应该可以为UIScrollView设置为2。

这样做只需抓住你的观点手势识别器......

myScrollView.gestureRecognizers;

迭代数组以找到平移手势......

if ([gestureRecogniser isKindOfClass:[UIPanGestureRecognizer class]])

将您的gestureRecogniser指针投射到更具体的类型...

UIPanGestureRecognizer *panGestureRecogniser = (UIPanGestureRecognizer *)gestureRecogniser;

最后设置了minimumNumberOfTouches属性......

panGestureRecogniser.minimumNumberOfTouches = 2;

您可能需要做的唯一其他事情是为您的视图启用多点触控 - UIView具有应设置为true的multipleTouchEnabled属性。

答案 1 :(得分:0)

在Swift中,你可以写

myScrollView.panGestureRecognizer.minimumNumberOfTouches = 2