Я создал вид карты, в котором есть кнопка для переключения между режимом «редактирования» и режимом «перетаскивания» в зависимости от требований проекта.Я понимаю, что достаточно легко перетаскивать свои аннотации из создания, устанавливая их перетаскиваемыми в viewForAnnotation, но требуемое поведение этого не допустит.Я попробовал несколько разных способов изменить аннотации на перетаскиваемые без успехаПервой мыслью было перебрать существующие аннотации и установить для каждой из них «перетаскиваемый» и «выбранный», но я получил нераспознанный селектор, отправленный на ошибку экземпляра (я попытался создать новую аннотацию для передачи в объект и заново построить графикнаходясь в цикле, но я также получаю ту же ошибку):
NSLog(@"Array Size: %@", [NSString stringWithFormat:@"%i", [mapView.annotations count]]);
for(int index = 0; index < [mapView.annotations count]; index++) {
if([[mapView.annotations objectAtIndex:index]isKindOfClass:[locAnno class]]){
NSLog(@"** Location Annotation at Index: %@", [NSString stringWithFormat:@"%i", index]);
NSLog(@"* Location Marker: %@", [mapView.annotations objectAtIndex:index]);
}
if([[mapView.annotations objectAtIndex:index]isKindOfClass:[hydAnno class]]) {
NSLog(@"** Hydrant Annotation at Index: %@", [NSString stringWithFormat:@"%i", index]);
NSLog(@"* Hydrant Marker: %@", [mapView.annotations objectAtIndex:index]);
[[mapView.annotations objectAtIndex:index]setSelected:YES];
[[mapView.annotations objectAtIndex:index]setDraggable:YES];
}
}
Вторая мысль заключалась в том, чтобы использовать 'didSelectAnnotationView', устанавливать выбранные и перетаскиваемые на аннотацию, когда она выбрана, и сбрасывать свойствакогда режим снова переключается.Это работает, но очень плохо, так как событие не всегда срабатывает, и вам нужно нажать аннотацию один или несколько раз, прежде чем она изменит свойства:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
NSLog(@"Annotation Selected!");
if(!editMode) {
view.selected = YES;
view.draggable = YES;
}
}
Первыйпопытка кажется самым простым решением, если я смогу заставить его работать.Использование метода didSelect с другой стороны является громоздким и взломанным.Я довольно новичок в разработке для iOS, поэтому я прошу прощения, если я упустил из виду что-то новичка, пока разбираюсь с этим.Я ценю любую информацию, которую может предложить сообщество.Большое спасибо.