在调用MKMapView的setCenterCoordinate:animated:方法(没有动画)后,我想调用selectAnnotation:animated :(带动画),以便从新居中的图钉中弹出注释.
现在,我只是观察mapViewDidFinishLoadingMap:然后选择注释.但是,这是有问题的.例如,当不需要加载其他地图数据时,不会调用此方法.在这些情况下,我的注释未被选中.:(
很好.我可以在设置中心坐标后立即调用它.啊,但在这种情况下,它也有可能存在的地图数据加载(但还没有完成加载还).我冒险过早地调用它,动画最多也会变得不稳定.
因此,如果我理解正确,这不是知道我的坐标是否可见的问题,因为它可能几乎偏离屏幕距离并且必须加载新的地图数据.相反,它需要知道是否需要加载新的地图数据,然后相应地采取行动.
有关如何实现这一点的任何想法,或者如何在将注释生效的坐标重新定位到地图视图后以其他方式(可靠地)选择注释?
线索赞赏 - 谢谢!
我是Maps Concept的新手.
请找一次附图.

当我点击"pin"时,我收到消息说"欣赏你的笑容"或任何文字.....现在我想要...当我们选择表视图时,我需要为该引脚提出该消息(与该针的用户交互)...
我在下面的代码中使用了这个地图和引脚.
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
customLocation.latitude=[casesobjc.latitude_string doubleValue];
customLocation.longitude=[casesobjc.longitude_string doubleValue];
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:casesobjc.locationForMap_string andCoordinate:customLocation];
[mapView addAnnotation:newAnnotation];
}
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation {
MKPinAnnotationView *pin = (MKPinAnnotationView *) [mapView dequeueReusableAnnotationViewWithIdentifier: @"annotation_ID"];
if (pin == nil) {
pin = [[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"annotation_ID"];
} else {
pin.annotation = annotation;
}
pin.pinColor = MKPinAnnotationColorPurple;
pin.animatesDrop = YES;
pin.canShowCallout=YES;
return pin;
}
Run Code Online (Sandbox Code Playgroud)
现在我将如下所示显示所有引脚.

怎么做当我们点击表视图时,我需要显示该引脚的标题,就像我们选择引脚时的显示方式一样?
提前致谢
在我的viewWillAppear中我有一个视图
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
[point setCoordinate:(myLocation)];
[point setTitle:@"Here it is!"];
[mapView addAnnotation:point];
[mapView setRegion:adjustedRegion animated:YES];
Run Code Online (Sandbox Code Playgroud)
这就像我想要的那样为地图增加了一点.但是我必须点击它才能看到标注.
如何默认显示标注?
我尝试在以下之后添加:
[self.mapView selectAnnotation:annotation animated:YES];
但它似乎没有用......我必须使用真正的注释而不是MKPointAnnotation来做到这一点吗?
我正在尝试使用自定义图像,MKAnnotationView当我使用以下代码时,我的注释上没有图像.我已经检查了调试,以确保图像正确加载到UIImage.
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:@"String"];
if(!annotationView) {
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"String"];
UIButton *directionButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *directionIcon = [UIImage imageNamed:@"IconDirections"];
[directionButton setImage:directionIcon forState:UIControlStateNormal];
annotationView.rightCalloutAccessoryView = directionButton;
}
annotationView.enabled = YES;
annotationView.canShowCallout = YES;
return annotationView;
}
Run Code Online (Sandbox Code Playgroud)