0

我正在实现消息应用程序复制消息功能。

您可以双击或长按消息以复制它。

我怎么做?

我正在考虑向视图添加两个手势识别器,一个UITapGestureRecognizernumberOfTapsRequired设置为2)和一个UILongPressGestureRecognizer。他们都有相同的目标和行动。

然后,我认为对于他们每个人,我都会调用requireGestureRecognizerToFail:,传递另一个手势识别器。

我的想法正确吗?有什么我想念的,还是有更好的方法来做到这一点?

4

4 回答 4

0

是的,正如您所说,创建两个手势识别器(一个长按和一个双击)并将它们都添加到同一个视图中。

不要调用requireGestureRecognizerToFail:它们中的任何一个,因为默认情况下长按和双击手势可以很好地配合使用。

你可以给他们同样的目标和动作,但是每个手势需要不同的逻辑来决定你是否应该显示复制菜单。

- (void)messageCopyMenuShowAction:(UILongPressGestureRecognizer *)gestureRecognizer
{
    BOOL doubleTap = (gestureRecognizer.numberOfTapsRequired == 2);
    if ((doubleTap && gestureRecognizer.state == UIGestureRecognizerStateEnded) ||  // double-tap
        (!doubleTap && gestureRecognizer.state == UIGestureRecognizerStateBegan)) { // long-press
        // Show copy menu.
    }
}
于 2013-10-28T02:29:30.137 回答
0

您可以在 UIGestureRecognizerDelegate 中尝试此方法

手势识别器:应该同时识别手势识别器:

有关更多详细信息,请参阅: https ://developer.apple.com/library/ios/documentation/UIKit/Reference/UIGestureRecognizerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIGestureRecognizerDelegate/gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer :

这有助于一次识别多个手势识别器。

于 2013-10-27T07:23:45.133 回答
0

只需将手势添加到您的视图(易于以编程方式执行)并将选择器设置为所需的方法。但是,您可能会受到一些回击,因为您没有提供任何代码或提示,表明您在来这里之前曾尝试解决您的问题。我也是新来的,但由于这些原因,我看到一些问题被搁置了。

于 2013-10-27T05:16:20.323 回答
0

正如您所说,双击并长按要复制的消息。所以他们俩都在使用相同的动作。所以我认为你可以用同样的方法做到这一点。

于 2013-10-27T07:07:04.450 回答