gpt4 book ai didi

objective-c - map 查看 :didAddAnnotationViews: doesn't respond

转载 作者:行者123 更新时间:2023-12-03 18:02:14 24 4
gpt4 key购买 nike

我目前正在阅读《iPhone 编程 The Big Nerd Ranch Guide》,并在第 96 页遇到一些问题。

我已经正确分配了 MKMapViewDelegate(与多个委托(delegate)进行了测试),并且每个委托(delegate)都对所做的更改做出了响应。但在这次委托(delegate)期间:

- (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");
}

添加注释时控制台应该记录这一点。但不知何故它不运行上面的方法。

这是主文件

- (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;
}

我想知道哪一部分是错误的。 [mapView setShowUserLocation:TRUE] 是否向 map 添加注释?如果是的话,为什么上面的方法没有反应?

最佳答案

这是因为您还没有添加注释!显示用户位置的蓝色指示器不属于注释。您只需将红色图钉拖放到 map View 上(触摸并按住 map )即可添加注释。

如果您想以编程方式为 map View 创建自己的注释,我建议您首先查看 MKMapView class reference documentation 中的“注释 map ”部分。并查看MKAnnotation protocol reference (如果您不熟悉协议(protocol),我强烈建议您也阅读这些协议(protocol)!)您可以使用类 MKPinAnnotationView 的实例,它符合此协议(protocol),您可以使用 MKMapView 类的 addAnnotation: 实例方法添加注释。

关于objective-c - map 查看 :didAddAnnotationViews: doesn't respond,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5242851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com