Как добавить кнопку в выноску userLocation? - PullRequest
2 голосов
/ 12 июля 2010

Как отобразить DisclosureButton в выноске userLocation (синяя точка), как это делает приложение Apple Maps?

Теперь я могу просто изменить его заголовок и подзаголовок, но я надеюсь предоставить настраиваемые виды выносок.Поэтому, если я нажму синюю точку, она может отобразить кнопку, кроме только заголовка и подзаголовка.Таким образом, когда я нажимаю кнопку, она может привести меня к другому виду.Я вернул MKAnnotationView в viewForAnnotation, когда annotation == self.mapView.userLocation.Тем не менее, выноска может отображать обновленные заголовок и субтитры, но не может отображать кнопку, которую я добавил.

Мне действительно нужна эта функция, и я хочу любую помощь и предложение!

Ответы [ 3 ]

10 голосов
/ 28 февраля 2012

Я пробовал решение camdaochemgio , но оно работает только для второго касания.Вот решение, которое всегда будет работать:

-(void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    for (MKAnnotationView* view in views)
    {
        if ([view.annotation isKindOfClass:[MKUserLocation class]])
        {
            view.rightCalloutAccessoryView=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        }
    }
}
2 голосов
/ 02 августа 2010

Для annotationView установите

myAnnotationView.canShowCallout=YES;

затем добавьте до двух кнопок с помощью

myAnnotationView.leftCalloutAccessoryView=myLeftButton;

myAnnotationView.rightCalloutAccessoryView=myRightButton;

Кнопки могут быть обычной кнопкой, пользовательской кнопкой или одним из предопределенных типов. Как это:

myAnnotationView.rightCalloutAccessoryView=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];

Затем добавьте метод calloutAccessoryControlTapped: для обработки отводов.

1 голос
/ 07 января 2011

может быть поздно. Вот решение. Вы реализуете метод UIMapViewDelegete, как показано ниже:

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

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...