簡體   English   中英

如何將Button添加到userLocation標注?

[英]How to add Button to userLocation callout?

如何在Apple Maps應用程序的userLocation(藍點)標注中顯示DisclosureButton?

現在我可以更改其標題和副標題,但我希望提供自定義標注視圖。 因此,如果我點擊藍點,它除了標題和副標題外還可以顯示一個按鈕。 這樣,當我點擊按鈕時,它可以引導我到另一個視圖。 當注釋== self.mapView.userLocation時,我在viewForAnnotation中返回了MKAnnotationView。 但是,標注可以顯示更新的標題和副標題,但不能顯示我添加的按鈕。

我真的需要這個功能,我希望得到任何幫助和建議!

我嘗試過camdaochemgio的解決方案,但它只適用於第二次點擊。 這是一個始終有效的解決方案:

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    for (MKAnnotationView* view in views)
    {
        if ([view.annotation isKindOfClass:[MKUserLocation class]])
        {
            view.rightCalloutAccessoryView=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        }
    }
}

對於annotationView,請設置

myAnnotationView.canShowCallout=YES;

然后添加兩個按鈕

myAnnotationView.leftCalloutAccessoryView=myLeftButton;

myAnnotationView.rightCalloutAccessoryView=myRightButton;

按鈕可以是普通按鈕,自定義按鈕或預定義類型之一。 像這樣:

myAnnotationView.rightCalloutAccessoryView=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];

然后添加calloutAccessoryControlTapped:方法來處理點擊。

也許遲到了。 這是解決方案。 您實現UIMapViewDelegete方法如下:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
    if ([view.annotation isKindOfClass:[MKUserLocation class]] && !view.rightCalloutAccessoryView) {
        view.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];

    }
}

暫無
暫無

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

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