【问题标题】:DidSelectAnnotationView method is not getting calledDidSelectAnnotationView 方法没有被调用
【发布时间】:2016-07-26 17:47:25
【问题描述】:

我正在实施军械测量地图。我可以显示所有注释,但是点击注释时没有调用 didSelectAnnotationView 方法。

这是代码,我在 viewForAnnotation 方法中使用了下面的代码。

OSAnnotationView *view = nil;
static NSString *pinAnnotation = @"PinAnnotation";
view = [self.mapView dequeueReusableAnnotationViewWithIdentifier:pinAnnotation];
if (view == nil) {
    view = [[OSAnnotationView alloc] initWithAnnotation : annotation reuseIdentifier : pinAnnotation];
}

我已将委托设置为 self 并且能够调用除 didSelectAnnotationView 之外的所有委托方法。

谁能回答这个问题?

谢谢

【问题讨论】:

  • 你能添加一些代码吗?
  • 你设置地图视图的代理了吗?
  • @MSU_Bulldog 是的,我已经设置了委托并编辑了问题
  • 也许 OSAnnotationView 类有一个协议,您需要您的类遵守该协议才能实现这些委托方法
  • 这是 OSMapView 中的错误

标签: ios objective-c mkmapview mkannotationview mkmapviewdelegate


【解决方案1】:

我查看了 OSAnnotationView 的文档,发现它有一个 image 属性。尝试将其设置为非零值,我认为 didSelectAnnotationView 将起作用。另外,如果将 image 属性设置为 non-nil 不起作用,请尝试将其 title 属性设置为空字符串。

【讨论】:

  • Kunal Shrivastava 感谢您的回复。我尝试将图像属性设置为 view.image = [UIImage imageNamed:@""];但是机器人对我有用,并且找不到 title 属性。
  • 在 OSMapView 的演示项目中,我看到他们在 viewForAnnotation 中使用 OSPinAnnotationView,而在您的代码中使用 OSAnnotationView。这会是个问题吗?您可以尝试改用 OSPinAnnotationView 吗?
  • 即使在 viewForAnnotation 中使用 OSPinAnnotationView 也不起作用,委托方法没有调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 2014-12-30
  • 2014-06-02
  • 2011-08-28
  • 2017-02-24
  • 2015-02-23
相关资源
最近更新 更多