在 mkuserlocation 上,如何在 viewForAnnotation 中显示我自己的自定义消息

发布于 2024-11-16 00:56:07 字数 68 浏览 4 评论 0原文

我想在 viewForAnnotation 中显示自定义消息而不是“我的位置”。我该怎么做?

谢谢 德肖恩

I want to show a custom message instead of "My Location" in viewForAnnotation. How do I do this?

Thanks
Deshawn

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无语# 2024-11-23 00:56:07

MKMapView 的委托中,实现方法 mapView:viewForAnnotation 并检查注释的类型是否为 MKUserLocation。如果是,请更改注释的标题和副标题属性。标注将自动提取新值。或者您可以创建一个全新的视图并将其返回到此处。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    if ([annotation isKindOfClass:[MKUserLocation class]]) {
        annotation.title = @"I am here";
        return nil;
    }
    return nil;
}

免责声明:我还没有测试过这段代码。

In the delegate of your MKMapView, implement the method mapView:viewForAnnotation and check if the annotation is of type MKUserLocation. If yes, change the title and subtitle properties of the annotation. The callout will automatically pull the new values. Or you can create a totally new view and return it here.

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    if ([annotation isKindOfClass:[MKUserLocation class]]) {
        annotation.title = @"I am here";
        return nil;
    }
    return nil;
}

Disclaimer: I haven't tested this code.

黑凤梨 2024-11-23 00:56:07

可以通过更新 MKUserLocationTitle 属性来完成。

由于 MKAnnotation 协议不需要将 Title 设置为属性,因此将注释作为参数传递给 MKUserLocation 并设置该属性

- (MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:    (id<MKAnnotation>)annotation {
    if ([annotation isKindOfClass:[MKUserLocation class]]) {
        [(MKUserLocation*)annotation setTitle: @"I am here"];
        return nil;
    }
    return nil;
}

It can be done by updating Title property of MKUserLocation.

As MKAnnotation protocol doesn't require making Title a property, cast annotation passed as an argument to MKUserLocation and set the property

- (MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:    (id<MKAnnotation>)annotation {
    if ([annotation isKindOfClass:[MKUserLocation class]]) {
        [(MKUserLocation*)annotation setTitle: @"I am here"];
        return nil;
    }
    return nil;
}
你是年少的欢喜 2024-11-23 00:56:07

只需直接引用它也可以,就像这样...

mapView.userLocation.title = @"I am here";

这可以在您引用地图视图的任何地方完成。

Simply referring directly to it works too, like this...

mapView.userLocation.title = @"I am here";

This can be done from anywhere you have a reference to the map view.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文