2015-06-08 91 views
0

我試圖在iOS上使用MapBox實現自定義標註。當用戶按下標記時,我想要標註顯示UIWebView而不是左側和右側附件視圖,標題僅包含文本。在iOS上使用HTML自定義Mapbox標註

我已經通過SDK文檔進行了搜索,無法找到訪問註釋標題視圖的簡單方法,所以我可以將其設置爲UIWebView

RMAnnotation *annotation = [[RMAnnotation alloc] initWithMapView:mapView coordinate:CLLocationCoordinate2DMake(56.0,-4.0) andTitle:@"test"]; 
annotation.userInfo = @"test"; 

RMMapLayer *layer = annotation.layer; 
layer.backgroundColor = [UIColor blackColor].CGColor; 

然而,當我按上的標記註釋泡沫仍然是白色:

我試圖訪問該註釋層,看看我能做出的變化,如開始了。

我已經通過SDK進行了搜索,試圖瞭解RMAnnotationRMMarker類之間的關係以及它們如何相互作用,但認爲我的理解有缺陷,因此我沒有得到任何地方。

如果有人能幫助我指出正確的方向,將不勝感激!

回答

0

好的,我想出了一個方法來完成這項工作。它有點「黑客」,但它對我的目的非常有用,所以我想我會分享。請評論,如果你有更好的想法,並告訴我,如果這不是一個好辦法做到這一點。

我檢查了SDK源代碼,RMMapView通過SMCalloutView對象標題,字幕和左/右配件視圖。當我檢查SMCalloutView代碼時,可以通過將UIView傳遞給contentView來提供自定義標註,但RMMapView未提供傳遞此代碼的功能。我的修復是合成SMCallout_currentCallout),以便我可以從我的ViewController訪問contentView並將contentView設置爲UIWebView。我選擇在RMMapViewDelegate中創建一個名爲aboutToDisplayAnnotation的新代理方法,該方法使我可以在將標註繪製到屏幕之前交換我的UIWebView,但我想更好的方法可能是重寫RMMapView中的selectAnnotation方法。