我正在使用适用于 iOS 的 Google Maps API,我想做到这一点,当您点击 GMSCircle 时,它会弹出一个我在别处编码的小东西。我已将圆圈设置为“可点击”,但我找不到我需要设置或制作的内容来聆听点击。我用什么?
CLLocationCoordinate2D circleCenter = CLLocationCoordinate2DMake(10,10);
GMSCircle *circ = [GMSCircle circleWithPosition:circleCenter
radius:10];
circ.tappable = true;
[circ setFillColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:.5]];
circ.map = mapView_;
最佳答案
您需要使用委托(delegate)方法didTapOverlay :
- (void) mapView: (GMSMapView *) mapView didTapOverlay: (GMSOverlay *) overlay
这里参数overlay表示被点击的overlay。所以你需要检查它是否等于 circ。
编辑:添加有关如何在 didTapOverlay 中检查圈子的详细信息
当 GMSCircle
被添加到 map 时,相应的 GMSPolygon
也会被创建。如果圆被设置为可点击的,那么在点击它时,传递给 didTapOverlay
方法的叠加是这个相关的多边形而不是圆。因此,叠加层和圆圈之间的直接比较是不可能的。因此,正如 Raspu 指出的那样,您可以使用 circ.title =
在 title 中设置一个值,然后在 didTapOverlay 中,您可以检查 overlay.title
是否与 circ.title
.这是有效的,因为圆的标题属性在相应的多边形内,因此将出现在叠加参数中。
关于ios - 让 GMSCircle 响应点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975273/