作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下情况:- 3 个具有相同坐标但标题和信息不同的图钉- map 上只有一个图钉
可以多次点击该引脚,注释将显示为:- 第一次点击 -> 引脚 1 的注释- 第二次点击 -> 引脚 2 的注释- 第三次点击 -> 引脚 3 的注释- 第四次点击 -> 引脚 1 的注释
你有什么想法我应该如何实现它吗?
最佳答案
您可以实现 didSelectAnnotationView
委托(delegate)方法,并根据上次“正确”选择自行选择“正确”注释。
如果 map 上仅有这些注释,并且仅其中一组,那么您可以保留一个int
ivar来记住什么最后选择的注释是并在委托(delegate)方法中递增它。
例如:
// In .h
int lastAnnotationSelected;
// In .m
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
int nextAnnotationToSelect = (lastAnnotationSelected + 1)
% mapView.annotations.count;
id<MKAnnotation> nextAnnotation =
[mapView.annotations objectAtIndex:nextAnnotationToSelect];
[mapView selectAnnotation:nextAnnotation animated:YES];
lastAnnotationSelected = nextAnnotationToSelect;
}
如果您还打开了 showsUserLocation
,那么您必须在该方法中添加对 MKUserLocation
的检查并跳过它(如果您愿意)并继续到集群中的下一个注释。
此外,如果您有多个注释簇(坐标 A 处有 3 个,坐标 B 处有 5 个,坐标 C 处有 4 个,等等),那么您需要跟踪 LastAnnotationSelected int 数组,并在方法中,首先确定选择了哪个簇,并获取该簇中要选择的下一个注释。
关于iphone - MapKit多个引脚相同坐标,不同信息选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608349/
我是一名优秀的程序员,十分优秀!