Objective c MKCircle覆盖未在MapView上绘制
我正确地将地图视图连接到我的代表。此外,用户位置确实会显示在地图上,但应该显示在同一位置的MKCircle不会显示。它在某种程度上起了作用,但不知何故停止了作用。这是我的一些代码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
- (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方法。但还是什么都没有出现。然后我用一种颜色填充了我的覆盖层,这很有效,让我意识到我的覆盖层实际上是被画出来的,但是是看不见的。你们可以写你们的评论作为答案,我会把你们标记为正确答案。我明白了。现在我明白了它必须被实现,因为覆盖默认情况下不包含任何图形,所以它们看起来不可见。太好了,谢谢!