2017-06-01 42 views
0

Google Maps API有一个didTapInfoWindowOf方法,可以检测到标记的信息窗口已被点击。iOS:Google Maps API - 禁用信息窗口点按事件

我想限制这个事件只有一个水龙头一段时间。

当我点击信息窗口时,我正在调用一个后端服务器的API调用,当我得到一个响应后,我继续看另一个视图。问题在于用户可以多次点击此信息窗口,从而多次触发api调用。

有没有办法限制?

在我使用的是本地定义的属性didTapWindowCount和限制API调用每一个它的挖掘,像这样的时间的时刻:

var didTapInfoWindowCount = 0 
func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) { 
     didTapInfoWindowCount += 1 

     // perform api call -- limit to once until done 
     if didTapInfoWindowCount == 1 { 
      myAPICall { 
       // on success 
       didTapInfoWindowCount = 0 
      } 
     } 
    } 

我在想,如果有一个变通或者,如果有什么建成API?

回答

0

mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker)将被调用多次,因为用户点击的info window

为了避免在API命中的情况下多次调用它,可以使用Bool值。从布尔值

var didTapInfoWindow = false 
func mapView(_ mapView: GMSMapView, didTapInfoWindowOf marker: GMSMarker) 
{ 
    if !didTapInfoWindow 
    { 
     didTapInfoWindow = true 
     myAPICall { 
      // on success 
      didTapInfoWindow = false 
     } 
    } 
} 
+0

旁白,有没有比我与计用同样的方式有什么区别? – Simon

+0

我不认为有任何其他方式做到这一点。 – PGDev

相关问题