Ios 为什么不显示多段线?
下面是我的全部代码,以显示一行简单的代码:Ios 为什么不显示多段线?,ios,xamarin.ios,Ios,Xamarin.ios,下面是我的全部代码,以显示一行简单的代码: public class MapUIViewController : UIViewController { MKMapView map; public override void ViewDidAppear(bool animated) { base.ViewDidAppear(animated); CLLocationCoordinate2D loc = new CLLocationCoord
public class MapUIViewController : UIViewController
{
MKMapView map;
public override void ViewDidAppear(bool animated)
{
base.ViewDidAppear(animated);
CLLocationCoordinate2D loc = new CLLocationCoordinate2D(38.8895, -77.036168);
map = new MKMapView()
{
MapType = MKMapType.Hybrid,
Region = new MKCoordinateRegion(loc, new MKCoordinateSpan(0.1, 0.1)),
Frame = View.Bounds,
};
View = map;
ShowLine(loc, new CLLocationCoordinate2D(loc.Latitude + 1, loc.Longitude + 1));
}
void ShowLine(CLLocationCoordinate2D start, CLLocationCoordinate2D end)
{
MKGeodesicPolyline polyline = MKGeodesicPolyline.FromCoordinates(new CLLocationCoordinate2D[] { start, end });
map.AddOverlay(polyline);
map.OverlayRenderer = rend;
}
MKOverlayRenderer rend(MKMapView mapView, IMKOverlay overlay)
{
if (overlay is MKGeodesicPolyline line)
return new MKPolylineRenderer(line) { LineWidth = 3, StrokeColor = UIColor.Red, FillColor = UIColor.Brown, Alpha = 1 };
else
return null;
}
}
它显示指定的位置,但不显示线
(代码在C#(使用Xamarin.ios)中,但在Swift和Objective C中应该类似,我的问题是关于作为ios特性的渲染器,而不是语言特性)
我一定是遗漏了什么,但我找不到。在添加行之前,需要指定渲染器。以另一种方式执行此操作意味着添加线时不存在渲染器,因此不会绘制该线 错 对
您应该指定渲染器FIRST@Jason哇,很简单。谢谢(您可以将您的评论更改为答案,以便我可以接受。)再次感谢。(7分钟内无法接受)
map.AddOverlay(polyline);
map.OverlayRenderer = rend;
map.OverlayRenderer = rend;
map.AddOverlay(polyline);