如何在 iPhone 中单击按钮时调用 pin 注释

2023-12-13

我不希望直接在地图上调用图钉,我希望通过按钮操作调用图钉注释。

当我在按钮单击事件上调用此方法时,我的应用程序崩溃了。我想在单击按钮时调用注释。我可以在按钮上调用所有方法吗?

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.map dequeueReusableAnnotationViewWithIdentifier: @"restMap"];
    if (pin == nil) {
        pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"restMap"] autorelease];
    } else {
        pin.annotation = annotation;
    }
    pin.pinColor = MKPinAnnotationColorRed
    pin.canShowCallout = YES;
    pin.animatesDrop = NO;
    UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    NSInteger annotationValue = [self.annotations indexOfObject:annotation];
    detailButton.tag = annotationValue;
    [detailButton addTarget:self action:@selector(showDetailView:) forControlEvents:UIControlEventTouchUpInside];
    pin.rightCalloutAccessoryView = detailButton;
    return pin;
}  

您尝试调用的方法是 MapView 委托方法,并且只能由您的 MapView 调用。此方法仅用于在 mapView 需要时“按需”提供注释的视图。 IE。当注释位于或即将移入mapView的可见区域时。

您需要将注释对象添加到您的地图视图中。该对象必须符合 MKAnnotation 协议。http://developer.apple.com/library/ios/documentation/MapKit/Reference/MKAnnotation_Protocol/

您可以通过在按下按钮时调用的 IBAction 方法中调用 [yourMapView addAnnotation: yourAnnotationObject] 将对象添加到 mapView。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iPhone 中单击按钮时调用 pin 注释 的相关文章

随机推荐