首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在开始时可靠地选择MKMapView中的一个概念(在ios 6和IOS5.1中)?

在开始时可靠地选择MKMapView中的一个概念(在ios 6和IOS5.1中)?
EN

Stack Overflow用户
提问于 2012-10-16 09:20:43
回答 2查看 387关注 0票数 0

从事件的详细视图中,我想转到一个MapViewController,放大到注释,然后打开它的标注。以下是一些相关代码:

代码语言:javascript
复制
@interface MapViewController : UIViewController<MKMapViewDelegate>
...
- (void) viewWillAppear:(BOOL)animated
{
  [self displayAnnotations];
}

- (void) viewDidAppear:(BOOL)animated
{
    ...
    // Zoom in to event
    [map setRegion:region animated:YES];        
}

- (void) mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
   ...
   regionAnimationEnded = YES;
   [self selectAnnotation:a];
   ...
}

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
   ...
   // check to see if the right view is in the array
   ...
   annotationViewDidAppear = YES;
   [self selectAnnotation:a];
   ...   
}

- (void) selectAnnotation:(id<MKAnnotation>)annotation
{
   if(annotationViewDidAppear && regionAnimationEnded)
   {
     if(!openedAnnotationFirstTime)
     {
        [map selectAnnotation:annotation animated:YES];
        openedAnnotationFirstTime = YES;
     }
   }
}

这在ios 6模拟器上有效,但在ios 5.1模拟器(和设备上)中,一个概念视图是不可见的,因为它在文档中这样说:

(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)视图在调用该方法时,指定的视图已经添加到映射中。

因此,这取决于哪个是先完成的:如果区域更改动画最后完成,并且注释视图已经出现,那么它就不能工作,否则就不会。如果有任何帮助,我们将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 12:46:18

最后,我使用了执行选择器,延迟了实际地图的选择注释:注释动画:是的;这是一个工作,但似乎很好。

票数 0
EN

Stack Overflow用户

发布于 2012-10-16 11:47:27

您的selectAnnotation:方法将被调用两次。尝试只在mapView:regionDidChangeAnimated:委托方法中调用它一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12911405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档