MKMapView: цвет метки местоположения пользователя автоматически меняется на серый

Это странно, у меня есть ViewController, который добавляет MKMapView в качестве подвида. В приложении есть несколько шагов, выполнение которых приводит к тому, что метка местоположения пользователя меняет свой цвет с синего на серый.

Я исследовал в следующем

  1. в кодовой базе нет места, где tintColor изменяется
  2. использовал KVO для наблюдения за оттенком Цвет
  3. проанализировано, что в «viewWillAppear» (до последней строки) tintColor равен «UIDeviceRGBColorSpace 0 0,478431 1 1», а в «viewDidAppear» tintColor изменяется на «UIDeviceWhiteColorSpace 0,392275 0,8»

Пожалуйста, уточните, если изменить цветовое пространство.

 CGFloat mapviewY = self.searchView.frame.origin.y + self.searchView.frame.size.height + 1;
CGFloat mapviewHeight = self.view.frame.size.height - mapviewY;
_klMapView = [[KMapMapView alloc] initWithFrame:CGRectMake(kScreenOrigin,
                                                           mapviewY,
                                                           SCREEN_WIDTH,
                                                           mapviewHeight)];
_klMapView.mapViewDelegate = self;
[self.view addSubview:_klMapView];

Спасибо, Анкит.


person Ankit Sachan    schedule 16.06.2015    source источник
comment
У вас есть какое-то модальное/оконное представление, добавленное поверх карты в любой точке?   -  person Templar    schedule 16.06.2015
comment
bhai @Ankit предоставьте некоторый код.   -  person Blind Ninja    schedule 16.06.2015
comment
@Templar Нет, поверх карты не добавляется подвид.   -  person Ankit Sachan    schedule 16.06.2015
comment
@ХарвантС. сэр, пожалуйста, обратитесь к коду выше   -  person Ankit Sachan    schedule 16.06.2015
comment
UIDeviceWhiteColorSpace 0.392275 0.8 это означает, что у вас есть 39% RGB (все три цвета шкалы: красный, зеленый, синий или белый) с прозрачностью 80% (A или альфа).   -  person Blind Ninja    schedule 16.06.2015
comment
Тогда я понятия не имею. Была аналогичная проблема с некоторыми представлениями и анимацией на уровне окна, которые перекрашивали весь контроллер представления сзади как модальный -> все было выделено серым цветом.   -  person Templar    schedule 16.06.2015
comment
Вы где-нибудь меняете глобальный оттенок цвета контроллера представления на раскадровке?   -  person Sahil Kapoor    schedule 16.06.2015
comment
Да, если вы устанавливаете window.tintColor=someColor в AppDelgate, вы можете изменить все цвета оттенка по умолчанию в приложении.   -  person Blind Ninja    schedule 16.06.2015


Ответы (2)


Проверьте, используете ли вы mapView(mapView: _, viewForAnnotation: _) и отформатируйте его таким образом.

 func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
            if annotation.isKindOfClass(MKUserLocation) {
                return nil
            }
            // rest of your code
    }
person Sahil Kapoor    schedule 16.06.2015
comment
вот что происходит при рисовании аннотаций - person Ankit Sachan; 17.06.2015
comment
Я не понял, что ты хотел сказать? - person Sahil Kapoor; 17.06.2015

Итак, ответ получен, на самом деле tintAdjustmentMode менялся. Исправил это

mapView.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;
person Ankit Sachan    schedule 17.06.2015