iPhone中需要时,地图上的自定义图标和默认当前位置图标

时间:2011-11-16 06:57:23

标签: iphone mkmapview currentlocation

我有一个应用程序在哪里,我给用户2选项。 1.通过GPS选择当前位置 2.手动输入当前位置。

我想要的是当用户选择第一个选项时,我必须显示当前位置的蓝色动画图标 当用户选择第二个选项时,我必须为当前位置显示我自己的自定义图标。

有可能吗?建议最受欢迎。

感谢。

2 个答案:

答案 0 :(得分:1)

首先为Example isInGPSMode

设置一个布尔变量

现在应用以下代码

if(isInGPSMode==TRUE)
{
     mapViewHome.showsUserLocation=TRUE;
}
else
{
     mapViewHome.showsUserLocation=FALSE;
}

并将地图视图委托作为

处理
- (MKAnnotationView *) mapView:(MKMapView *)mapView1 viewForAnnotation:(id <MKAnnotation>) annotation
{
    if(annotation==mapViewHome.userLocation)
    {
        return nil;
    }
    addAnnonation *tempAnnonation=(addAnnonation *)annotation;

    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
    annView.pinColor = MKPinAnnotationColorRed;
    return annView;

}

有关详细信息,请参阅链接 http://developer.apple.com/iphone/library/samplecode/MapCallouts/Introduction/Intro.html

希望这会有所帮助

答案 1 :(得分:0)

Rupesh在Swift中的解决方案:

func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView? {
    // Keep default pin for user location
    if myMapView.userLocation.isEqual(annotation) {
        return nil;
    }

    var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier("pin") as? MKPinAnnotationView
    if pinView == nil {
        pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin")
        pinView!.canShowCallout = true
        pinView!.animatesDrop = true
        pinView!.pinColor = .Red
    }
    else {
        pinView!.annotation = annotation
    }
    return pinView
}