我正在研究一个已经实施的项目。我在项目中添加了集群,现在的问题是之前显示的自定义信息窗口现在没有在 iOS 中显示。
在 Android 中我能够实现它,但在 iOS 上我无法实现。这是我之前工作的代码。
早期继承:
public class MapRenderer : Xamarin.Forms.GoogleMaps.iOS.MapRenderer
现在聚类后的继承流程:
abstract public class ClusteredMapRenderer : Xamarin.Forms.GoogleMaps.iOS.MapRenderer
public class MapRenderer : ClusteredMapRenderer
protected override void OnElementChanged(ElementChangedEventArgs<View> e)
{
nativeMap = Control as MapView;
nativeMap.MarkerInfoWindow += MarkerInfoWindow;
}
public override UIView MarkerInfoWindow(MapView map, Marker marker)
{
// here I return UIView that I want to display
}
MarkerInfoWindow 被 Xamarin.Forms.GoogleMaps.iOS.MapRenderer 覆盖
此流程之前工作,但在我实施集群后它停止工作。我们如何拥有自定义信息窗口?我已经使用此链接实现了集群: https ://github.com/mierzynskim/Xamarin.Forms.GoogleMaps.Clustering/tree/master/src
编辑(1)如果我设置了就可以获得信息窗口
innerItem.Map = nativeMap;
在
protected override void OnMarkerCreating(Pin outerItem, Marker innerItem)
但是在这样做之后,我得到 2 个引脚而不是 1 个(1 个集群和 1 个非集群),因为额外的非集群引脚集群不起作用