【发布时间】:2012-01-11 06:03:30
【问题描述】:
我想在 viewForAnnotation 中显示自定义消息而不是“我的位置”。我该怎么做?
谢谢 德肖恩
【问题讨论】:
标签: ios4 mkmapview mkannotation
我想在 viewForAnnotation 中显示自定义消息而不是“我的位置”。我该怎么做?
谢谢 德肖恩
【问题讨论】:
标签: ios4 mkmapview mkannotation
在您的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;
}
免责声明:我没有测试过这段代码。
【讨论】:
可以通过更新MKUserLocation的Title属性来完成。
由于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;
}
【讨论】:
直接引用它也可以,像这样......
mapView.userLocation.title = @"I am here";
这可以在任何您有地图视图参考的地方完成。
【讨论】: