2015-02-08 93 views
0

我在这里失去了我的想法。为什么这不起作用? update_map方法被调用,但viewForOverlay不会。iOS MKMapView viewForOverlay不叫

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    if(mapView2 != nil) 
    { 
     [self update_map]; 
    } 

- (void)update_map 
{ 
    CLLocationDistance fenceDistance = 100000; 

    MKCircle *circle = [MKCircle circleWithCenterCoordinate:newCoord radius:fenceDistance]; 
    [mapView2 addOverlay:circle]; 
} 

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay 
{ 
    NSLog(@"circle overlay"); 
    MKCircleView *circleView = [[MKCircleView alloc initWithOverlay:overlay]; 
    [circleView setFillColor:[UIColor blueColor]]; 
    [circleView setAlpha:0.1f]; 
    return circleView; 
} 
+0

地图视图发送消息向其代表介绍地图数据的加载和正在显示的地图部分的变化。我想知道,如果你已经设置了代表? – ldindu 2015-02-08 12:37:28

+0

确保mapView不是零,代表已设置 – 2015-02-08 12:55:18

回答

0

确保您的视图控制器支持<RKMapViewDelegate>协议和delegate属性mapView2实例设置为您的视图控制器,无论是在的.xib或以编程方式如下:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.mapView2.delegate = self; 
} 
+0

谢谢,它做到了。 – raki 2015-02-08 13:17:18