Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c MKCircle覆盖未在MapView上绘制_Objective C_Ios_Map_Overlay_Mkoverlay - Fatal编程技术网

Objective c MKCircle覆盖未在MapView上绘制

Objective c MKCircle覆盖未在MapView上绘制,objective-c,ios,map,overlay,mkoverlay,Objective C,Ios,Map,Overlay,Mkoverlay,我正确地将地图视图连接到我的代表。此外,用户位置确实会显示在地图上,但应该显示在同一位置的MKCircle不会显示。它在某种程度上起了作用,但不知何故停止了作用。这是我的一些代码 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if

我正确地将地图视图连接到我的代表。此外,用户位置确实会显示在地图上,但应该显示在同一位置的MKCircle不会显示。它在某种程度上起了作用,但不知何故停止了作用。这是我的一些代码

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        locationManager = [[CLLocationManager alloc] init];
        [locationManager setDelegate:self];
        [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
        [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    userLocation = newLocation;
    MKCircle *circle = [MKCircle circleWithCenterCoordinate:userLocation.coordinate radius:500];
    circle.title = @"Nearby sites";
    [worldView addOverlay:circle];
}

对于注释,不需要实现
viewForAnnotation
delegate方法,地图视图将绘制默认的红色图钉

但是对于覆盖,您必须实现
viewForOverlay
delegate方法。

地图视图不提供默认覆盖视图。

locationManager是属性吗?是否调用了UpdateToLocation?您是否实现了viewForOverlay委托方法?您好,locationManager是一个ivar。didUpdateToLocation被调用。我还没有实现viewForOverlay委托方法,根据文档,这似乎不需要。因此我将我的ivar设置为属性,并实现了viewForOverlay方法。但还是什么都没有出现。然后我用一种颜色填充了我的覆盖层,这很有效,让我意识到我的覆盖层实际上是被画出来的,但是是看不见的。你们可以写你们的评论作为答案,我会把你们标记为正确答案。我明白了。现在我明白了它必须被实现,因为覆盖默认情况下不包含任何图形,所以它们看起来不可见。太好了,谢谢!