0


我的 iOS 应用程序只有一个视图,其中有一个 mapView。添加点击或长按识别器时,会正确调用事件。但不是捏事件......

    UIPinchGestureRecognizer *handlePinchGesture=[[UIPinchGestureRecognizer alloc]initWithTarget:mapView action:@selector(handleGesture:)];
    [mapView addGestureRecognizer:handlePinchGesture];

知道我应该添加什么吗?谢谢。

4

2 回答 2

3

假设你mapView是一个MKMapView,它有自己的捏手势识别器来缩放地图。

如果要添加自己的识别器,则必须允许它与其他(地图视图控制的)识别器同时识别。设置你的手势识别器delegate并实现gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:(你总是可以 return YES)。

您还应该设置self为手势识别器target而不是mapView.

于 2012-05-06T14:28:43.853 回答
1

在 handleGesture 方法中,你做了这样的事情:

CGFloat beginPinch;  //declare this as your ivars

-(void)handleGesture:(UIPinchGestureRecognizer *)pinchRecognizer
{
    if (pinchRecognizer.state == UIGestureRecognizerStateBegan)
    {
        beginPinch = pinchRecognizer.scale;    
    } 
    else if (pinchRecognizer.state == UIGestureRecognizerStateEnded)
    {
        if (pinchRecognizer.scale < beginPinch)
        {
              //do your stuff
        }
    }
}
于 2012-05-06T14:22:10.120 回答