IPhone - удаление синей точки currentLocation из MKMapView - PullRequest
1 голос
/ 29 февраля 2012

Я пытаюсь заменить синюю точку currentLocation пользовательской аннотацией. Этот код работает хорошо (я просто реализую viewForAnnotation и перебираю его, заменяя аннотацию Class MKUserLocation пользовательским изображением).

Однако после замены аннотации текущее местоположение пользователя перестает обновляться. Все связанные функции (например, didUpdateUserLocation), таким образом, перестают вызываться. Это вызывает много проблем. Я пытался реализовать различные блоки кода в MKUserLocation Custom View, не двигаясь! , но я не мог заставить его работать. После тщательного поиска в Google и поиска в стеке я ничего не нашел.

У кого-нибудь есть решение этой проблемы?

Вот код для метода viewForAnnotation:

_userDot - это переменная экземпляра в MapScreen.m (место, где находится весь этот код). Он размещен в viewDidLoad и имеет тип MKAnnotationView. По сути, я не мог просто избавиться от аннотации, поэтому я хотел установить вместо нее невидимое изображение (в настоящее время 1x1 для отладки).

- (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation:(id <MKAnnotation>)annotation 
{
    if ([annotation isKindOfClass:[MKUserLocation class]]) {
        //Initialize a new MKAnnotationView using the current userLocation annotation
        //Then make it invisible (because we are cheap like that)
        //TODO: Make it actually invisible (right now it is 1x1 for debugging)
        if (_userDot)
        {
            _userDot.annotation = annotation;
            _userDot.image = [UIImage imageNamed:@"mister_taco"];
            _userDot.frame = CGRectMake(1, 1, 1, 1);
            return _userDot;
        }
        else
            return nil;
    }
    else {*/
        return nil;
    //}
}

Спасибо, Brian

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