gpt4 book ai didi

objective-c - MKAnnotationView 缩放时不会保持在原位

转载 作者:行者123 更新时间:2023-11-29 05:03:51 26 4
gpt4 key购买 nike

我正在 iOS 中的 map 上放置自定义标记,但遇到了一个问题,即当用户捏合放大和缩小时,标记不会锚定到应有的位置。这是添加标记的代码...

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil;

MarkerVO *thisMarker = (MarkerVO*)annotation;

MKAnnotationView *pin = (MKAnnotationView *) [map dequeueReusableAnnotationViewWithIdentifier:[thisMarker commaSeparatedCoordinate]];
if (!pin) {
pin = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:[thisMarker commaSeparatedCoordinate]] autorelease];
[pin setImage:[UIImage imageNamed:@"pin_tick.png"]];
[pin setCenterOffset:CGPointMake(0, -23)];
[pin setCanShowCallout:YES];
}
return pin;
}

所以,是的,刻度线显示正常,但在缩放时,它只是四处移动。例如,在近距离变焦时,它可能就在现场,但在远距离变焦时,它最终会出现在海里!我明白为什么会发生这种情况,但是即使没有 setCenterOffset 线,它仍然会发生。

任何想法都会很棒。

最佳答案

当 pin 未从出队返回 nil 时,尝试将 pin.annotation 设置为注释。

重用的 View 可能以某种方式来自不同的注释,即使代码似乎为每个注释设置了唯一的标识符(我在任何情况下都不推荐这样做)。

关于objective-c - MKAnnotationView 缩放时不会保持在原位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6168753/

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