我正在尝试在 MKMapView 上添加注释。当坐标不是(0, 0) 时可以显示注释,但是当我将注释的坐标设置为(0, 0)时,注释 View 无法显示。
在 iPhone XS 模拟器和设备上,只有一个注解显示(location (10, 0)),location(0, 0) 不显示。
好像(0, 0)注解是加在 map 底部,而不是非洲西边。
欢迎提出任何建议。
- (void)viewWillAppearBOOL)animated {
[super viewWillAppear:animated];
// Add Annotation
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = CLLocationCoordinate2DMake(0, 0);
[self.mapView addAnnotation:annotation];
MKPointAnnotation *annotationZero = [[MKPointAnnotation alloc] init];
annotationZero.coordinate = CLLocationCoordinate2DMake(10, 0);
[self.mapView addAnnotation:annotationZero];
}
#pragma mark - MKMapViewDelegate
- (MKAnnotationView *)mapViewMKMapView *)mapView viewForAnnotationid<MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKPointAnnotation class]]) {
static NSString *reuseIdentifier = @"map_annotation";
MKAnnotationView *annotationView = [_mapView dequeueReusableAnnotationViewWithIdentifier:reuseIdentifier];
if (annotationView == nil) {
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
}
annotationView.image = [UIImage imageNamed"annotation_icon"];
return annotationView;
}
return nil;
}
Best Answer-推荐答案 strong>
我开始使用 Swift 进行测试,CLLocationCoordinate2DMake(0,0) 工作正常,所以问题与设备无关,但它是特定于语言的 < em>问题。
你不能在 objective-c 中使用 (0,0) ,而是使用 DBL_MIN ,这是可能的最小数字,像这样:
CLLocationCoordinate2DMake(DBL_MIN, DBL_MIN)
关于iOS MapView 添加坐标为 (0, 0) 的 MKPointAnnotation 不显示,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/54687261/
|