iphone sdk:如何区分触摸和拖动

时间:2014-01-02 21:40:49

标签: ios iphone objective-c drag popover

我正在使用2个豆荚。

MMDrawerController 0.5.1&安培; WYPopoverController 0.1.7

现在我想在我的MMView上制作WYPopover

一些照片:

这就是MMController的样子(游乐场)

some playground

现在我想在任何地方触摸它并使它看起来像:

normal when touched

错误:如果我想从'MMController'打开左视图,有时我会得到这个:

the error

但它应该看起来像(左MMControllerView)

enter image description here

我使用的是2种方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// show the popoverController
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    [popController dismissPopoverAnimated:NO];
}

我的问题:为什么touchesMoved不是连续的,如果有更好的方式?

2 个答案:

答案 0 :(得分:2)

我对你提到的“豆荚”一无所知(CocoaPods?)然而,区分水龙头和拖拽的最直接的方法是使用一对手势识别器,一个轻敲手势识别器和一个平移手势识别器,并设置点击手势识别器,以便在触发点击之前平移手势必须失败(手势识别器内置“等待直到另一个手势识别器失败”机制。)

我建议阅读UIGestureRecognizer,以及特定类UITapGestureRecognizer和UIPanGestureRecognizer

答案 1 :(得分:0)

当您的左侧菜单打开时,您可以关闭popover, 即你可以在幻灯片菜单的委托方法中这样做: - menuWillOpen:或类似的东西。