MKAnnotation - выноска с контактом карты появляется за другими контактами карты - PullRequest
7 голосов
/ 22 сентября 2009

Мои контакты карты могут быть достаточно плотно заполнены, так что, когда выбран значок, всплывающая подсказка всплывает, но в основном закрывается всеми остальными контактами карты - я могу вывести контакт карты вперед, если был делегат для выбранной карты контакт (не затронутый выносной, выбранный контакт).

Есть предложения по обходу?

Ответы [ 2 ]

2 голосов
/ 05 мая 2010

Если вы используете пользовательские аннотации, вы можете добавить наблюдателя для выбранного свойства, который будет действовать как делегат при выборе пина.

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
    MKAnnotation *annview = ...code to either dequeue or create new object...
    [annview addObserver:self forKeyPath:@"selected" options:NSKeyValueObservingOptionNew context:@"selectedmapannotation"];               
    return annview;
}

тогда вы можете контролировать выбранное состояние с помощью

- (void)observeValueForKeyPath:(NSString *)keyPath
                  ofObject:(id)object
                    change:(NSDictionary *)change
                   context:(void *)context;

Ответ, связанный с Mugunth Kumar, также даст вам желаемые результаты, просто вы упомянули делегатскую функциональность в своем вопросе.

EDIT:

Вот пример содержимого наблюдаемого значенияValueForKeyPath: ofObject: change: context: method

NSString *action = (NSString*)context;

if([action isEqualToString:@"selectedmapannotation"]){
    BOOL annotationAppeared = [[change valueForKey:@"new"] boolValue];
    MKAnnotationView *ann = (MKAnnotationView *)object;

    if (annotationAppeared) {
        // do something with the annotation when it is selected
    }
    else {
        // do something with the annotation when it is de-selected
    }
}
1 голос
/ 21 февраля 2010

UICallout view является подпредставлением MKAnnotationView. Итак, я думаю, что если вы выведете ping Map на передний план, UICAlloutView тоже будет там.

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