可以使用MKUserLocation将标题和副标题添加到iOS显示的用户位置。当用户点击该位置时,这些将显示在该位置上方的气泡中。通过从MKAnnotationView中选择带有setSelected:animated:
的注释,可以显示其他注释的思想气泡。不幸的是,MKUserLocation并不是来自MKAnnotationView。
如何以编程方式选择用户位置,以便注释显示在用户位置上而无需用户首先点击它?
答案 0 :(得分:7)
MKAnnotationView
的文档说明了setSelected:animated:
方法(以及selected
属性的相似内容):
您不应直接调用此方法。
相反,请使用MKMapView
方法selectAnnotation:animated:
。如果您在didAddAnnotationViews
委托方法中调用它,则可以确保注释视图已准备好显示标注,否则调用selectAnnotation
将无效。
例如:
-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
for (MKAnnotationView *av in views)
{
if ([av.annotation isKindOfClass:[MKUserLocation class]])
{
[mapView selectAnnotation:av.annotation animated:NO];
//Setting animated to YES for the user location
//gives strange results so setting it to NO.
return;
}
}
}