2011-06-19 35 views

回答

2

在你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; 
} 

声明:我还没有测试过这个代码。

+0

嗨,你不能像这样直接设置标题......是否有任何其他方式来设置此注释的标题? – user605957

1

它可以通过更新Title财产MKUserLocation

由于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; 
} 
1

只需直接引用它也能工作,像这样...

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

这可以在任何地方对地图视图进行引用。

相关问题