Ios 如何以编程方式选择MKUserLocation?
可以将标题和副标题添加到iOS显示的用户位置。当用户点击该位置时,它们将显示在该位置上方的气泡中。通过从MKAnnotationView中选择带有Ios 如何以编程方式选择MKUserLocation?,ios,mkmapview,mkannotation,mkannotationview,Ios,Mkmapview,Mkannotation,Mkannotationview,可以将标题和副标题添加到iOS显示的用户位置。当用户点击该位置时,它们将显示在该位置上方的气泡中。通过从MKAnnotationView中选择带有setSelected:animated:的注释,可以显示其他注释的思想气泡。不幸的是,MKUserLocation不是从MKAnnotationView派生的 如何以编程方式选择用户位置,使注释显示在用户位置上,而不让用户先点击它?MKAnnotationView的文档介绍了它的setSelected:animated:方法(以及它的selected
setSelected:animated:
的注释,可以显示其他注释的思想气泡。不幸的是,MKUserLocation不是从MKAnnotationView派生的
如何以编程方式选择用户位置,使注释显示在用户位置上,而不让用户先点击它?MKAnnotationView的文档介绍了它的
setSelected:animated:
方法(以及它的selected
属性的类似内容):
您不应该直接调用此方法
相反,请使用
MKMapView
方法selectAnnotation:animated:
。如果在didAddAnnotationViews
delegate方法中调用它,则可以确保注释视图已准备好显示标注,否则调用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;
}
}
}
谢谢,这很有效。顺便说一句,如果使用动画,关于奇怪结果的注释是正确的。在我的应用程序中,动画会导致用户位置重置为北极(大致)。在没有动画的情况下,一切按预期进行。