未调用UIPinchGestureRecognizer

时间:2012-05-06 14:09:05

标签: ios cocoa-touch uikit mkmapview uipinchgesturerecognizer


我在iOS应用程序上有一个视图,里面有一个mapView。 添加点按或长按识别器时,会正确调用事件。 但不是捏事件......

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

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

2 个答案:

答案 0 :(得分:2)

假设您的mapViewMKMapView,它有自己的捏合手势识别器,用于缩放地图。

如果要添加自己的识别器,则必须允许它与另一个(mapview控制的)识别器同时识别。设置您的手势识别器delegate并实施gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:(您可以随时返回YES)。

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

答案 1 :(得分: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
        }
    }
}