可以使用MKUserLocation将标题和副标题添加到iOS显示的用户位置。当用户点击该位置时,这些内容将显示在该位置上方的一个气泡中。通过从MKAnnotationView中选择带有setSelected:animated:的注释,可以显示其他注释的思想气泡。不幸的是,MKUserLocation并不是从MKAnnotationView衍生出来的。
如何以编程方式选择用户位置,使注释显示在用户位置之上,而不是用户首先点击它?
发布于 2012-01-12 03:48:30
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;
}
}
}https://stackoverflow.com/questions/8824517
复制相似问题