Отбрасывание 2 пина с длинным краном - PullRequest
0 голосов
/ 31 марта 2011

Я обнаруживаю длинное нажатие, чтобы поставить булавку на карту, и она работает, я добавляю переменную pinId, которую я увеличиваю каждый раз, я опускаю точку, чтобы проверить, что только две булавки сброшены на одной карте, но здесь что-тоЯ думаю, что не работает нормально, потому что я могу поставить только один значок на карту!

Вот код:

-(void)handleLongPressGesture:(UIGestureRecognizer*)sender {

if (sender.state == UIGestureRecognizerStateEnded)

{

  [self.mapView removeGestureRecognizer:sender];

}else{ 
    if (pinId < 3) {


        CGPoint point = [sender locationInView:self.mapView];

        CLLocationCoordinate2D locCoord = [self.mapView convertPoint:point toCoordinateFromView:self.mapView];


        MapAppAnnotation* annotation = [[MapAppAnnotation alloc]initWithCoordinate:locCoord andID:pinId];
        pinId++;
        [mapView addAnnotation:annotation];
        [annotation release];

    }}
}

- (void)update{


UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPressGesture:)];

[self.mapView addGestureRecognizer:longPressGesture];


[longPressGesture release];

}

- (void)viewDidLoad {

[super viewDidLoad];
//...

pinId = 1;

 self.update;
}

1 Ответ

1 голос
/ 31 марта 2011

На предположение;это потому что removeGestureRecognizer вызывается после первого долгого нажатия.Это работает, если вы удалите этот вызов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...