2015-02-02 10 views
7

otrzymuję następujący błąd: initWithPolyline: jest przestarzała: najpierw przestarzałe w iOS 7,0MKPolylineView initWithPolyLine: jest przestarzałe w iOS 7

MKPolylineView *lineView = [[MKPolylineView alloc] 
     initWithPolyline:overlay]; 

Co to jest metoda wymiany zamiast tego?

+3

Użyj MKPolylineRenderer jako odpowiedzi, ale musisz również zaimplementować metodę delegowania rendererForOverlay zamiast viewForOverlay. – Anna

Odpowiedz

5

Zobacz documentation dla . Zapoznaj się z oświadczeniem dotyczącym wycofywania, które mówi, aby zamiast tego użyć obiektu MKPolylineRenderer.

1

Będziesz chciał spojrzeć na MKPolylineRenderer, specjalnie dla opcji -initWithPolyline (dostępne w iOS 7 i nowszych wersjach).

10

Powinieneś użyć delegata typu (MKOverlayRenderer *) zamiast delegata typu (MKOverlayView *). I zwróć MKPolylineRenderer zamiast 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; 
} 
Powiązane problemy