Iphone 在滚动视图中模拟拖动

Iphone 在滚动视图中模拟拖动,iphone,ios,uiscrollview,multi-touch,Iphone,Ios,Uiscrollview,Multi Touch,:)我正在拦截并重新发送发送到scrollview的手势 我想做的是: 杀死scrollview中的所有手势识别器。我已经做到了 在滚动视图中添加新的手势识别器。我也做到了这一点 使新识别器的行为与旧识别器相同。我还没有做到这一点,我需要帮助 我添加的唯一新识别器是平移手势识别器,它至少需要两个手指。我希望它的行为完全像一个手指滚动。:) 在响应新识别器生成的回调时,我必须发送什么类型的调用才能完成此任务?我认为您试图实现自己的自定义手势识别器,这已经过于复杂了 UIPangestureReco

:)我正在拦截并重新发送发送到scrollview的手势

我想做的是:

杀死scrollview中的所有手势识别器。我已经做到了

在滚动视图中添加新的手势识别器。我也做到了这一点

使新识别器的行为与旧识别器相同。我还没有做到这一点,我需要帮助

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


在响应新识别器生成的回调时,我必须发送什么类型的调用才能完成此任务?

我认为您试图实现自己的自定义手势识别器,这已经过于复杂了

UIPangestureRecognitor类有一个MinimumNumberOfTouchs属性,您应该能够为UIScrollView将该属性设置为2

要做到这一点,只需抓取您的观点手势识别器

myScrollView.gestureRecognizers;
迭代数组以查找平移手势

if ([gestureRecogniser isKindOfClass:[UIPanGestureRecognizer class]])
将您的手势识别器指针强制转换为更具体的类型

UIPanGestureRecognizer *panGestureRecogniser = (UIPanGestureRecognizer *)gestureRecogniser;
最后设置它的MinimumNumberOfTouchs属性

panGestureRecogniser.minimumNumberOfTouches = 2;

您可能需要做的另一件事是为您的视图启用多点触控-UIView有一个multipleToTouchEnabled属性,该属性应设置为true。

在Swift中,您只需编写

myScrollView.panGestureRecognizer.minimumNumberOfTouches = 2

您是否希望像Mac OS X一样使用双手指滚动?并禁用所有其他界面,如一个手指滚动或捏缩缩放?是的,但我完成了所有这些,所以不用担心:)