簡體   English   中英

在iPhone中需要時,地圖上的自定義圖標和默認當前位置圖標

[英]Custom icon and default current location icon on Map when needed in iPhone

我有一個應用程序,其中給用戶2個選項。 1.通過GPS選擇當前位置。2.手動輸入當前位置。

我想要的是,當用戶選擇第一個選項時,我必須顯示當前位置的藍色動畫圖標;當用戶選擇第二個選項時,我必須顯示當前位置的我自己的自定義圖標。

可能嗎? 建議是最歡迎的。

謝謝。

首先為示例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

希望這可以幫助

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM