gpt4 book ai didi

ios - MKMapView:自定义 View 代替 Annotation Pin

转载 作者:IT老高 更新时间:2023-10-28 11:28:37 25 4
gpt4 key购买 nike

我想在我的 MKMapView 中显示一个图像,而不是小 rock pin

有人可以在这里放一些有用的代码,或者告诉怎么做吗?

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
(id <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = nil;
if(annotation != mapView.userLocation)
{
static NSString *defaultPinID = @"com.invasivecode.pin";
pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinView == nil ) pinView = [[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:defaultPinID];

pinView.pinColor = MKPinAnnotationColorGreen;
pinView.canShowCallout = YES;
pinView.animatesDrop = YES;
pinView.image = [UIImage imageNamed:@"pinks.jpg"]; //as suggested by Squatch
}
else {
[mapView.userLocation setTitle:@"I am here"];
}
return pinView;
}

我希望我的图像 pinks.jpg 出现在 map 上,固定位置而不是默认的图钉 View (摇滚别针形状)。但我仍然得到了 pin 的默认图像。

最佳答案

当您想将自己的图像用于注释 View 时,您应该创建一个 MKAnnotationView 而不是 MKPinAnnotationView

MKPinAnnotationViewMKAnnotationView 的子类,因此它具有 image 属性,但它通常会覆盖该属性并绘制图钉图像(就是这样为)。

所以把代码改成:

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation 
{
MKAnnotationView *pinView = nil;
if(annotation != mapView.userLocation)
{
static NSString *defaultPinID = @"com.invasivecode.pin";
pinView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinView == nil )
pinView = [[MKAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:defaultPinID];

//pinView.pinColor = MKPinAnnotationColorGreen;
pinView.canShowCallout = YES;
//pinView.animatesDrop = YES;
pinView.image = [UIImage imageNamed:@"pinks.jpg"]; //as suggested by Squatch
}
else {
[mapView.userLocation setTitle:@"I am here"];
}
return pinView;
}


请注意,animatesDrop 也被注释掉了,因为该属性只存在于 MKPinAnnotationView 中。

如果您仍希望删除图像注释,则必须自己制作动画。您可以在 Stack Overflow 中搜索“animatesdrop mkannotationview”,您会找到几个答案。这是前两个:

关于ios - MKMapView:自定义 View 代替 Annotation Pin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9814988/

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