MKPolylineView initWithPolyLine: 在iOS 7中已经被弃用。

8
我遇到了以下错误:initWithPolyline已经被弃用:自iOS 7.0起首次被弃用。
MKPolylineView *lineView = [[MKPolylineView alloc] 
       initWithPolyline:overlay];

这个问题的替代方法是什么?


3
使用MKPolylineRenderer,就像答案中所说的那样。但是你还需要实现rendererForOverlay代理方法来替换viewForOverlay方法。 - user467105
3个回答

11

你应该使用(MKOverlayRenderer *)类型的代理,而不是(MKOverlayView *)类型的代理。并且返回MKPolylineRenderer而不是MKPolylineView

-(MKOverlayRenderer *)mapView:(MKMapView *)mapView
           rendererForOverlay:(id<MKOverlay>)overlay {

   MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
   renderer.strokeColor = [UIColor redColor];
   renderer.lineWidth = 5.0;

   return renderer;
}

5

请查看文档以了解有关initWithPolyline:的信息。阅读弃用声明,建议使用MKPolylineRenderer对象代替。


1
你可以看一下MKPolylineRenderer,特别是-initWithPolyline(在iOS 7及更高版本中可用)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接