gpt4 book ai didi

iphone - 如何从 MKMapView 中删除所有注释而不删除蓝点?

转载 作者:行者123 更新时间:2023-12-03 18:16:48 26 4
gpt4 key购买 nike

我想从我的 map View 中删除所有注释,而不包含我的位置的蓝点。当我打电话时:

[mapView removeAnnotations:mapView.annotations];

所有注释均被删除。

如果注释不是蓝点注释,我可以通过什么方式检查(例如对所有注释进行 for 循环)?

编辑(我已经解决了这个问题):

for (int i =0; i < [mapView.annotations count]; i++) { 
if ([[mapView.annotations objectAtIndex:i] isKindOfClass:[MyAnnotationClass class]]) {
[mapView removeAnnotation:[mapView.annotations objectAtIndex:i]];
}
}

最佳答案

查看MKMapView documentation ,看来您可以使用注释属性。迭代这个并查看您有哪些注释应该非常简单:

for (id annotation in myMap.annotations) {
NSLog(@"%@", annotation);
}

您还拥有 userLocation 属性,它为您提供表示用户位置的注释。如果您浏览完注释并记住所有非用户位置的注释,则可以使用 removeAnnotations: 方法删除它们:

NSInteger toRemoveCount = myMap.annotations.count;
NSMutableArray *toRemove = [NSMutableArray arrayWithCapacity:toRemoveCount];
for (id annotation in myMap.annotations)
if (annotation != myMap.userLocation)
[toRemove addObject:annotation];
[myMap removeAnnotations:toRemove];

希望这有帮助,

山姆

关于iphone - 如何从 MKMapView 中删除所有注释而不删除蓝点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2132173/

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