【问题标题】:Xamarin.Forms.Maps custom polyline renderer does not render when in viewXamarin.Forms.Maps 自定义折线渲染器在视图中不呈现
【发布时间】:2018-01-06 00:49:42
【问题描述】:
【问题讨论】:
标签:
xamarin
xamarin.forms
polyline
custom-renderer
【解决方案1】:
每次都需要创建渲染器,所以去掉类变量polylineRenderer,使用本地的。
MKOverlayRenderer GetOverlayRenderer(MKMapView mapView, IMKOverlay overlayWrapper)
{
IMKOverlay overlay = Runtime.GetNSObject(overlayWrapper.Handle) as IMKOverlay;
if (overlay is MKPolyline)
{
var polylineRenderer = new MKPolylineRenderer(overlay as MKPolyline);
polylineRenderer.FillColor = UIColor.Blue;
polylineRenderer.StrokeColor = UIColor.Red;
polylineRenderer.LineWidth = 3;
polylineRenderer.Alpha = 0.4f;
return polylineRenderer;
}
else
{
return null;
}
}
你也可以稍微简化一下
然后定义MKPolyline currentWayline;
var wayline = MKPolyline.FromCoordinates(coords.ToArray());
//IMKOverlay overlay = Runtime.GetNSObject(wayline.Handle) as IMKOverlay;
nativeMap.AddOverlay(wayline);
currentWayline = wayline;