Сегментированный контроль приводит к изменениям пинколора в mapkit - PullRequest
0 голосов
/ 29 июня 2011

проблема заключается в следующем:

У меня есть представление mapkit с двумя разными цветами.Теперь я добавил в сегментированный элемент управления для отображения различных типов карт, т.е.спутниковая, стандартная и гибридная.Когда мое приложение загружается, оно корректно с двумя разными цветами.Однако, когда я выбираю сегменты, все мои точки поменяются на красный цвет.

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

- (IBAction) segmentAction:(id)sender 
    {
    UISegmentedControl* segCtl = sender ;

    if( [segCtl selectedSegmentIndex] == 0 )
    { 
        NSLog(@"first view");
        _mapView.mapType=MKMapTypeStandard;

    }
    if( [segCtl selectedSegmentIndex] == 1 ) 
    { 
        NSLog(@"2nd view");
        _mapView.mapType=MKMapTypeSatellite;

    }
    if( [segCtl selectedSegmentIndex] == 2 ) 
    {

        NSLog(@"3rd view");
        _mapView.mapType=MKMapTypeHybrid;

    }


}

1 Ответ

0 голосов
/ 29 июня 2011

Убедитесь, что ваш контроллер представления карты реализует метод viewForAnnotation: - если это отсутствует, цвета булавок могут быть сброшены при обновлении представления.Например:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
MKPinAnnotationView *newAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"redpin"] autorelease];
newAnnotation.pinColor = MKPinAnnotationColorRed;
newAnnotation.animatesDrop = YES;
newAnnotation.canShowCallout = YES;
return newAnnotation;
}
...