gpt4 book ai didi

iphone - MKAnnotation - map 图钉标注在其他 map 图钉后面弹出

转载 作者:行者123 更新时间:2023-12-03 18:40:05 25 4
gpt4 key购买 nike

我的 map 图钉可以非常密集地填充,因此当选择图钉时,标注会弹出,但大部分被所有其他 map 图钉遮挡 - 我可以将 map 图钉放在前面,因为有选定 map 的代表引脚(未点击标注,选定引脚)。

有什么解决方法的建议吗?

最佳答案

如果您使用自定义注释 View ,您可以为所选属性添加一个观察者,该观察者在选择引脚时充当委托(delegate)。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
MKAnnotation *annview = ...code to either dequeue or create new object...
[annview addObserver:self forKeyPath:@"selected" options:NSKeyValueObservingOptionNew context:@"selectedmapannotation"];
return annview;
}

然后您可以使用

监视所选状态
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context;

Mugunth Kumar 链接的答案也会为您提供所需的结果,只是您在问题中提到了类似委托(delegate)的功能。

编辑:

这里是observeValueForKeyPath:ofObject:change:context:方法的内容示例

NSString *action = (NSString*)context;

if([action isEqualToString:@"selectedmapannotation"]){
BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
MKAnnotationView *ann = (MKAnnotationView *)object;

if (annotationAppeared) {
// do something with the annotation when it is selected
}
else {
// do something with the annotation when it is de-selected
}
}

关于iphone - MKAnnotation - map 图钉标注在其他 map 图钉后面弹出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1458052/

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