Я пытаюсь нарисовать хороший MKPolyline
на MKPolylineView
. Все идет отлично до сих пор - ломаная рисует так же, как я хочу его, и когда я хочу его, используя следующий код:Draw MKPolyline Fill Color
[[self map] addOverlay:routeLine];
И этот метод, чтобы сказать приложение, как сделать это:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay {
MKOverlayView* overlayView = nil;
self.routeLineView = [[MKPolylineView alloc] initWithPolyline:[self routeLine]];
[[self routeLineView] setFillColor:[UIColor colorWithRed:167/255.0f green:210/255.0f blue:244/255.0f alpha:1.0]];
[[self routeLineView] setStrokeColor:[UIColor colorWithRed:0/255.0f green:136/255.0f blue:255/255.0f alpha:1.0]];
[[self routeLineView] setLineWidth:15.0];
[[self routeLineView] setLineCap:kCGLineCapRound];
overlayView = [self routeLineView];
return overlayView;
}
В результате я получаю линию с сплошным синим цветом. Синий, я вижу, однако, не цвет заливки с тактом, который я ожидаю - это синий цвет штриха. Когда я использую этот метод, цвет заливки отсутствует. Почему он не рисует цвет заливки на полилинии?
После дальнейшего изучения, я нашел эту пикантную информацию в Quick Help разделе Xcode :
Класс MKPolylineView обеспечивает визуальное представление для объекта аннотаций MKPolyline. Этот вид гласит путь, представленный аннотацией. (Этот класс не заполняет область, заключенную в путь.) Вы можете изменить цвет и другие атрибуты чертежа пути, изменив свойства, унаследованные от класса MKOverlayPathView.
Это просто звучит нелепо. Я должен использовать этот класс для set цвет заливки, но я не могу использовать этот класс для draw цвет заливки? Это кажется очень странным, учитывая, что он уже рисует удар. Последняя строка в этом объяснении из документации немного неясна, но, кажется, дает ответ - мне просто сложно кодировать/находить ответ. У меня нет MKOverlayPathView
в моем проекте (что это такое?), Но кажется, что это решение - кто-нибудь знает, как его использовать?
'MKPolylineView' является подклассом' MKOverlayPathView'. Независимо от того, вы просто хотите использовать 'MKPolygon' (и создать связанный' MKPolygonView') вместо 'MKPolyline'. 'MKPolygon' рисует как удар, так и заливку. – Rob