gpt4 book ai didi

ios - viewForAnnotation 没有被调用(iOS noob)

转载 作者:行者123 更新时间:2023-12-01 18:20:55 26 4
gpt4 key购买 nike

我知道这个问题之前已经被其他人问过,并且我之前已经在这个论坛上阅读过它们,但是到目前为止我已经尝试了所有建议的方法,但没有运气,所以我决定发布这个问题。

我在下面有这段代码,用于更改 MKMapView 上的图钉图标。然而,viewForAnnotation 函数似乎甚至没有被 MKMapView 调用。人们说他们在将功能委托(delegate)给文件所有者时遇到了一些问题,这可以通过将 .xib 文件中的 map View 拖到文件所有者或定义 myMap.delegate = self 来完成。我已经做了两种方式,但仍然一无所获。

非常感谢您对我的问题的任何帮助,谢谢。

代码:

- (MKPinAnnotationView*)myMap:(MKMapView*)myMap viewForAnnotation:(id<MKAnnotation>)annotation{

MKPinAnnotationView *pin = [[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"CustomPin"];

UIImage *icon = [UIImage imageNamed:@"bustour.png"];
UIImageView *iconView = [[UIImageView alloc] initWithFrame:CGRectMake(8,0,32,37)];

if(icon == nil)
NSLog(@"image: ");
else
NSLog(@"image: %@", (NSString*)icon.description);

[iconView setImage:icon];
[pin addSubview:iconView];
pin.canShowCallout = YES;
pin.pinColor = MKPinAnnotationColorPurple;

return pin;
}

代表团
enter image description here

最佳答案

您的委托(delegate)方法被错误地命名为 myMap:viewForAnnotation: .
viewForAnnotation委托(delegate)方法必须被命名为 mapView:viewForAnnotation:像这样:

- (MKAnnotationView *)mapView:(MKMapView *)mapView 
viewForAnnotation:(id < MKAnnotation >)annotation
{
//code goes here...
}

map View 将寻找准确的方法名称。
如果没有找到,它不会调用它,而是创建一个默认的红色图钉。

您可以更改内部参数的名称,但不能更改方法名称。

例如,这也可以:
- (MKAnnotationView *)mapView:(MKMapView *)myMap 
viewForAnnotation:(id < MKAnnotation >)annotation
{
//code goes here...
}

关于ios - viewForAnnotation 没有被调用(iOS noob),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17402876/

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