Iev*_*gen 13 iphone mkmapview mkannotation
是否可以同时打开多个标注?
代码:
- (void)mapViewDidFinishLoadingMap:(MKMapView *)theMapView {
for (id<MKAnnotation> currentAnnotation in theMapView.annotations) {
[theMapView selectAnnotation:currentAnnotation animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
只打开一个标注.
请注意,有一种方法MKMapView(不MKAnnotationView)用于以编程方式选择注释,或多或少地按预期工作:
- (void)selectAnnotation:(id < MKAnnotation >)annotation animated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)
但是,它会同时自动取消选择任何当前注释,因此这不能解决您的问题.
奇怪的是,有一个属性MKMapView似乎包含一系列当前选定的注释:
@property(nonatomic, copy) NSArray *selectedAnnotations
Run Code Online (Sandbox Code Playgroud)
但是这个方法的文档说:
"为此属性指定一个新数组仅选择数组中的第一个注释."
只是觉得这可能是有趣的.
从严格的API角度来看,这似乎不可行.
在__CODE__上选择__CODE__状态:" 你不应该直接调用此方法的的MKMapView对象调用此方法来响应用户交互与注释 ",让底层的消息是,annotationView情况下,在用户选择的全部责任下的选择,并且由于用户一次只能选择其中一个,因此您无法同时选择其中一个.
即使文档说不应该直接调用此方法,您是否尝试__CODE__在几个__CODE__实例上调用它以查看它给出的内容?
我会做的清洁方式:(不测试自己)
如果你这样做,你可以同时出现几个标注气泡,并得到一些看起来像这样的东西:
替代文字http://a1.phobos.apple.com/us/r1000/048/Purple/2b/b2/ec/mzl.ttcsrlee.480x480-75.jpg