[英]MapView annotations not clickable and not showing details
1-我正在使用以下代码,但是我的自定义图钉不会显示气泡,而默认位置标记会显示气泡。 2-是否可以自定义我的位置图钉,以将颜色从默认的蓝色更改为红色,或者增加其动画圆半径?
-(void) showMarkers
{
[self.mapView removeAnnotations:[self.mapView annotations]];
for (int i = 0 ; i < 1; i ++)
{
MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
Players *player = [self.playersArray objectAtIndex:i];
annotationPoint.coordinate = CLLocationCoordinate2DMake([player.latitude doubleValue], [player.longitude doubleValue]);
annotationPoint.title = player.name;
annotationPoint.subtitle = [NSString stringWithFormat:@"Level %@", player.level ];
[self.mapView addAnnotation:annotationPoint];
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(annotationPoint.coordinate, 1500, 1500);
MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:viewRegion];
[self.mapView setRegion:adjustedRegion animated:YES];
}
}
- (void)map:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
self.mapView.centerCoordinate = userLocation.location.coordinate;
myLocation = userLocation;
}
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([[annotation title] isEqualToString:@"Current Location"] )
{
return nil;
}
MKAnnotationView *annView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"players"];
annView.image = [UIImage imageNamed:@"marker.png"];
annView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.canShowCallout = YES;
annView.enabled = YES;
[annView setUserInteractionEnabled:YES];
return annView;
}
最近在一个应用程序中,我使用自定义图像来显示气泡而不是默认图钉。 使用的代码发布在下面。 请看一看。 也许会有所帮助。
(MKAnnotationView *) mapView:(MKMapView *)mapView1 viewForAnnotation:(id <MKAnnotation>) annotation{
Annotation *annotationInst = (Annotation*)annotation;
MKAnnotationView *pinView = nil;
if(annotation != mapView.userLocation)
{
static NSString *defaultPinID = @"mypin";
pinView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinView == nil ){
pinView = [[[MKAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:defaultPinID]autorelease];
}
pinView.canShowCallout = YES;
pinView.image = [UIImage imageNamed:@"pin.png"];
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.rightCalloutAccessoryView = rightButton;
}
else {
[mapView.userLocation setTitle:@"You are here"];
}
return pinView;
}
并为获取标注附件按钮,请单击:
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control{
Annotation *tappedAnnotation = view.annotation;
CLLocationCoordinate2D tappedLocation = [tappedAnnotation coordinate];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.