나는 mapView에 몇 개의 주석을 달았습니다. 위의 코드를 사용하면 정상적으로 작동합니다.위치 추가 특정 탭 기능을 didSelectAnnotation MapKit
float userLatitude = [[userDict objectForKey:@"lat"]floatValue];
float userLongitude = [[userDict objectForKey:@"long"]floatValue];
NSString *someString = [someArray objectAtIndex:i];
NSString *anotherString = [anotherArray objectAtIndex:i];
CLLocationCoordinate2D loopCoord = {.latitude = userLatitude, .longitude = userLongitude};
MapAnnotationViewController *addAnnotation = [[MapAnnotationViewController alloc] initWithCoordinate:loopCoord];
self.localImage = [UIImage imageNamed:@"first.png"];
[addAnnotation setTitle:someString];
[addAnnotation setSubTitle:anotherString];
[mainMapView addAnnotation:addAnnotation];
기본적으로 사용자가지도에서 각 주석을 터치 할 때 사용자 지정 터치를 추가하고 싶습니다. 나는 다음과 같은 코드를받을 수 있나요 어떻게
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
:이 방법은 내가 태그 또는 대리자 메서드 각 주석에서 PARAM을 전달하려면 어떻게지도 (안 표준 didSelect)에 특정 위치에서 발사 할 필요가
UITapGestureRecognizer *singleFingerTap =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleSingleTap:)];
[self.view addGestureRecognizer:singleFingerTap];
[singleFingerTap release];
//The event handling method
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:[recognizer.view superview]];
//Do stuff here...
}
특정 주석 당 didSelectAnnotationView
이 전달 되었습니까?
당신은 단지 didSelectAnnotationView에 view.annotation를 사용하여 주석에 액세스 할 수 없습니다 :
여기에 자신의 MKAnnotaion 준수 클래스에 데이터를 저장에 대한 SO 질문입니다? – Anna
예, 탭 제스처 인식기를 annotationClass에 추가 하시겠습니까? 그리고 어떻게하면 각 주석에 특화 될 수 있습니까? – Eric
제스처 인식기가 필요한 이유는 무엇입니까? 위임 메서드는이 메서드없이 호출됩니다. – Anna