viewForOverlay никогда не вызывался - PullRequest
0 голосов
/ 19 сентября 2011

У меня есть вид с помощью кнопок сегмента.при нажатии на кнопку с индексом «1» должен отображаться вид карты с некоторыми наложениями.По этой причине у меня есть следующий код:

    {
        [_routeMap setHidden:NO];
        [self drawTheMap];
        [_routeMap setRegion:_region animated:YES];
        [_routeMap regionThatFits:_region];
        [_navBar setHidden:NO];
        NSLog(@"overlays: %@", _routeMap.overlays);
    }
    -(void)drawTheMap
    {
        [_routeMap setFrame:CGRectMake(0, 44, 320, 416)];
        for (int i=0; i<[_arrayOfPoints count]; i++) {
            CLLocation* location = [[CLLocation alloc] initWithLatitude:[[_arrayOfPoints objectAtIndex:i] latitude] 
                                                          longitude:[[_arrayOfPoints objectAtIndex:i] longitude]];

    ... 
        MKCircle * dot = [MKCircle circleWithCenterCoordinate:location.coordinate radius:radius];
            [_routeMap addOverlay:dot];

    ...  
    }
    ...
    }
    - (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
    MKCircleView *circleView = [[MKCircleView alloc] initWithCircle:overlay];
    circleView.lineWidth = 1.0;
    circleView.strokeColor = [UIColor orangeColor];
    [circleView setFillColor:[UIColor orangeColor]];

    return [circleView autorelease];
}

, но метод viewForOverlay никогда не вызывается = (. NSLog показывает мне, что mkmapview содержит некоторые оверлеи. Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 19 сентября 2011

В методе -(void)drawTheMap вместо [_routeMap addOverlay:dot]; попробуйте [self addOverlay:dot];

...