2017-06-01 71 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

相關問題