来自自定义图像的MKMapView注释图像对于许多引脚而言是不同的

时间:2014-10-17 11:19:05

标签: ios swift mkmapview

我正在尝试从位置数据库创建许多引脚,每个引脚都有自定义图像。图像以base64格式从服务器传递,我可以从base64数据创建UIImage,但我不能将图像作为图标而不是每个注释的图钉上传。

我有什么想法可以做到这一点吗?

我尝试按照这些SO帖子提供帮助,但他们只能创建一个预设的帖子,我无法弄清楚如何编辑所有这些帖子以便每个帖子都有一个独特的图标:

SO link 1SO link 2

有什么想法吗?

这是我创建引脚/注释的代码,任何人都有兴趣:

func mapTheseCoordinates(lat: Double, lng: Double, username: NSString, fullname: NSString) {
    let location = CLLocationCoordinate2D(
        latitude: lat,
        longitude: lng
    )
    // 2
    let span = MKCoordinateSpanMake(0.15, 0.15)
    let region = MKCoordinateRegion(center: location, span: span)
    mapView.setRegion(region, animated: true)

    //3
    let annotation = MKPointAnnotation()
    annotation.setCoordinate(location)
    annotation.title = username
    annotation.subtitle = fullname
    mapView.addAnnotation(annotation)
}

1 个答案:

答案 0 :(得分:0)

你可以使用mkmapview的这个委托事件,在这里你可以根据你的注释更改不同的图像

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
    MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];
    //MyPin.pinColor = MKPinAnnotationColorPurple;
    MyPin.highlighted = NO;
    MyPin.image = [UIImage imageNamed:@"pin_red"];

    return MyPin;
}

每次添加anotation时都会调用此委托事件,但不要忘记为mapview设置委托

[mapLocation addAnnotation:annotObj];