Objective c 地图视图:DIDADD注释视图:不';不回答
我目前正在阅读《iPhone编程大书呆子牧场指南》,在第96页遇到了一些问题 我已经正确地分配了MKMapViewDelegate(使用多个代理进行了测试),并且每个代理都响应所做的更改。但在这次代表会议上:Objective c 地图视图:DIDADD注释视图:不';不回答,objective-c,cocoa,delegates,mkmapview,Objective C,Cocoa,Delegates,Mkmapview,我目前正在阅读《iPhone编程大书呆子牧场指南》,在第96页遇到了一些问题 我已经正确地分配了MKMapViewDelegate(使用多个代理进行了测试),并且每个代理都响应所做的更改。但在这次代表会议上: - (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views { MKAnnotationView *annotationView = [views objectAtIndex:0]; id&
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
id<MKAnnotation> mp = [annotationView annotation];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 250, 250);
[mv setRegion:region animated:TRUE];
NSLog(@"Test");
}
我不知道哪一部分错了。[mapView setShowUserLocation:TRUE]是否向地图添加注释?如果是,为什么上面的方法没有响应?这是因为您还没有添加注释!显示用户位置的蓝色指示器未归类为注释。只需在地图视图上放置一个红色别针(按住地图),即可添加注释
如果您想以编程方式为地图视图创建自己的注释,我建议您首先查看中的“注释地图”部分,并查看(如果您不熟悉协议,我强烈建议您也阅读这些协议!)您可以使用符合此协议的类实例,您可以使用MKMapView类的
addAnnotation:
实例方法添加注释。我之前回答过类似的问题。您是否尝试在地图上放置pin?有一个蓝色指示器由[mapView setShowUserLocation:TRUE]生成,这算是pin吗?我不确定-只是尝试添加另一个pin!:)TBH,我在尝试添加pin时遇到问题。你能告诉我怎么做吗?因为我遇到了类似id的问题,我不知道如何继续。你能不能按住设备上的地图视图?我还在阅读文档,但我就是想不出来。[mapView addAnnotation:]需要变量id)注释。我不知道如何创建此变量。您需要创建符合MKAnnotation协议的类的实例,并将此实例传递给addAnnotation:
。尝试使用addAnnotation:
将MKPinAnnotationView的实例添加到映射中(它符合MKAnnotation协议)是,在我添加pin后,它实际上可以工作。但是书中的解释没有添加任何pin,而是将蓝色指示器视为pin。我已粘贴了这本书的引文。是不完整还是缺少什么?预期结果是应用程序缩放到当前位置而不是pin。谢谢,我将使用它作为参考。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
//[locationManager startUpdatingLocation];
[mapView setShowsUserLocation:TRUE];
[self.window makeKeyAndVisible];
return YES;
}