可以使用 MKUserLocation 将标题和副标题添加到 iOS 显示的用户位置.当用户点击该位置时,这些将显示在该位置上方的气泡中。可以通过从 MKAnnotationView 选择带有 setSelected:animated:
的注释来显示其他注释的思想泡泡。不幸的是,MKUserLocation 不是 MKAnnotationView 的后代。
如何以编程方式选择用户位置,以便注释显示在用户位置上方,而无需用户先点击它?
最佳答案
MKAnnotationView
的文档说明了它的 setSelected:animated:
方法(以及它的 selected
属性的类似内容):
You should not call this method directly.
相反,使用 MKMapView
方法 selectAnnotation:animated:
。如果您在 didAddAnnotationViews
委托(delegate)方法中调用它,您可以确保注释 View 已准备好显示标注,否则调用 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;
}
}
}
关于ios - 如何以编程方式选择 MKUserLocation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824517/