0

我正在尝试向我的别针添加标注。这是我的第一个带有地图标注的应用程序,我需要帮助将所有图钉标注指向外部视图。

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
    MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];
    MyPin.pinColor = MKPinAnnotationColorPurple;

    UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    [advertButton addTarget:self action:@selector(button:) forControlEvents:UIControlEventTouchUpInside];

    MyPin.rightCalloutAccessoryView = advertButton;
    MyPin.draggable = NO;
    MyPin.highlighted = YES;
    MyPin.animatesDrop=TRUE;
    MyPin.canShowCallout = YES;

    return MyPin;
}

触摸蓝色箭头内部时如何添加外部视图?

4

2 回答 2

0

在您的- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation方法中,尝试以下方式:

// Add button to callout
UIButton* advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.rightCalloutAccessoryView = advertButton;

(在此示例中,pinView是您从该方法返回的视图)

然后,在同一个类中添加一个方法:

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
    id <MKAnnotation> annotation = [view annotation];

    if ([annotation isKindOfClass:[MKPointAnnotation class]])
    {
        // TRANSITION TO VIEW HERE
    }
}

处理这个的类应该是一个代表MKMapViewDelegate

于 2014-10-29T23:43:53.617 回答
0

自从我这样做以来已经有一段时间了,但我认为您需要一个 NSObject 用于地图对象。我在使用地图编写最后一个应用程序时使用了本教程,它帮助很大。不过可能已经过时了。或者,您可以在 Google 地图网站上构建自定义地图并解析 kml 数据,这会固有地使用名称制作标注气泡,然后您可以从那里将标注编码得更复杂。另一个替代方案是 MapBox,它是一个独立的库,既简单又美观,并且有很多示例项目。 可能是一个相关的 SO 问题,其中包含有关制作自定义标注配件的代码。

于 2013-12-20T03:53:22.700 回答