长按每个水龙头下降2个针脚

时间:2011-04-06 09:50:09

标签: iphone mkmapview uigesturerecognizer

我的应用程序掉落引脚长时间点击,我允许用户只丢弃两个引脚并且它的工作我猜...但每次我点击在模拟器中添加一个引脚它会添加两个引脚(不仅仅是一个)。这是代码:

-(void) handleLongPressGesture:(UIGestureRecognizer*)sender
{
    if (pinId < 3) {
        // Here we get the CGPoint for the touch and convert it to
        // latitude and longitude coordinates to display on the map

        CGPoint point = [sender locationInView:self.mapView];       
        CLLocationCoordinate2D coord = [self.mapView convertPoint:point
                                            toCoordinateFromView:self.mapView];

        if (pinId == 1) {
            lat1 = coord.latitude;
            long1 = coord.longitude;

            MapAppAnnotation* annotation;
            annotation = [[MapAppAnnotation alloc] initWithCoordinate:coord
                                                andID:pinId];

            [mapView addAnnotation:annotation];

            MKCircle* circle = [MKCircle circleWithCenterCoordinate:coord
                                        radius:5000];
            [mapView addOverlay:circle];    
            pinId++;

        } else {
            lat2 = coord.latitude;
            long2 = coord.longitude;
            MapAppAnnotation* annotation2;
            annotation2 = [[MapAppAnnotation alloc] initWithCoordinate:coord
                                                andID:pinId];

            [mapView addAnnotation:annotation2];
        }
    } 
}

我想知道我的错是否是我的错(代码错误..)或iPhone模拟器是否会像两种不同的长压力一样受到长鼠压力..这可能吗?

1 个答案:

答案 0 :(得分:4)

手势开始时,您的选择器会被调用一次,结束时会再次调用。检查手势的状态并对相关动作采取行动。

-(void)handleLongPressGesture:(UIGestureRecognizer*)sender
{
    if (sender.state != UIGestureRecognizerStateEnded) return;

    // otherwise, handle the gesture as before
}

UILongPressGestureRecognizer的类引用说:

  

长按手势是连续的。   手势开始了   (UIGestureRecognizerStateBegan)时   允许的手指数量   (numberOfTouchesRequired)已经   按下指定的时间段   (minimumPressDuration)和触摸   不要超出允许范围   运动(allowableMovement)。该   手势识别器转换为   每当手指移动时改变状态,   它结束了   (UIGestureRecognizerStateEnded)时   任何一个手指都被抬起。