0
대물 렌즈의 DetailDisclosure
버튼에 태그를 설정하고 싶습니다. 내 예전의 코드는 다음과 같습니다DetailDisclosure에 태그를 설정하십시오
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if (annotation == mapView.userLocation)
{
return nil;
}
else
{
static NSString * const identifier = @"MyCustomAnnotation";
static int i;
MKAnnotationView* annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (annotationView)
{
annotationView.annotation = annotation;
}
else
{
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation
reuseIdentifier:identifier];
}
NSLog(@"%i",annotationView.tag);
annotationView.tag=annotationView.tag+1;
NSLog(@"%i",annotationView.tag);
annotationView.image = [UIImage imageNamed:@"pin1.png"];
annotationView.canShowCallout = YES;
UIImageView *sfIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"newlocation.png"]];
annotationView.leftCalloutAccessoryView = sfIconView;
UIButton *InformationButton=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[InformationButton addTarget:self action:@selector(annotationButtClicked:) forControlEvents:UIControlEventTouchUpInside];
InformationButton.tag=i;
annotationView.rightCalloutAccessoryView=InformationButton;
UILongPressGestureRecognizer *longGesture=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(LongPressEvent:)];
[annotationView addGestureRecognizer:longGesture];
return annotationView;
}
}
기능 구현
- (void)annotationButtClicked:(id)sender
{
NSLog(@"%i",[sender tag]);
}
콘솔 출력 내가 DetailDisclosure
에 태그를 설정하는 방법 때마다 0
입니까?
코드를 InformationButton.tag = 10으로 수정할 수 있습니까? InformationButton.tag = i의 인스턴스; 다시 시도하십시오. 나는 내가 0이라고 믿고 이것이 당신의 로그가 0을 반환하는 이유입니다. – Greg
소문자로 시작하는 주석 이름'InformationButton'. – Larme
태그를 사용하지 마십시오! 훨씬 더 내장 된 방법이 있습니다. http://stackoverflow.com/questions/9876042/annotation-details-after-detail-disclosure-pressed 및 http://stackoverflow.com/questions/9462699/how-to-recognize-which-pin-was-pped를 참조하십시오. . – Anna