2016-05-24 2 views
0

Я пишу код, чтобы изменить mkannotation штырькового изображения при прокрутке страницы .... но я теста не могу изменить это мой кодMKAnnotation булавка изображение не изменяется при прокрутке

-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation{ 
int pageNum = (int)(self.scroll.contentOffset.x/self.scroll.frame.size.width); 
if(pageNum==0){ 
    if([[annotation title]isEqualToString:@"place1"]){ 
    myPin = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"place"]; 
    myPin =[[MKAnnotationView alloc] 
      initWithAnnotation:annotation reuseIdentifier:@"place"]; 
    myPin.image = [UIImage imageNamed:@"star.png"]; 
    } 
} 
else if (pageNum==1){ 
    if([[annotation title]isEqualToString:@"place2"]){ 
     myPin = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"place"]; 
     myPin =[[MKAnnotationView alloc] 
       initWithAnnotation:annotation reuseIdentifier:@"place"]; 
     myPin.image = [UIImage imageNamed:@"star.png"]; 
    } 
} 
else if (pageNum==3){ 
    if([[annotation title]isEqualToString:@"place3"]){ 
    myPin = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"place"]; 
    myPin =[[MKAnnotationView alloc] 
      initWithAnnotation:annotation reuseIdentifier:@"place"]; 
    myPin.image = [UIImage imageNamed:@"star.png"]; 
    } 
} 
} 

ответ

0

Если я я правильно читаю ваш вопрос, кажется, что у вас есть контроллер вида с просмотром прокрутки в нем, и вы хотите, чтобы маркеры на карте (или картах) настраивались на основе того, какая в настоящее время отображается страница «прокрутки».

Я предполагаю, что код не будет работать, потому что у вас нет никакого контроля над тем, когда создаются эти аннотационные представления; MapKit просто вызывает метод всякий раз, когда ему требуется представление. (Я предполагаю, что вы знаете, что приведенный выше код использует один и тот же пин-образ для всех трех страниц и что вы не закрывали корпус pageNum==2.)

Я думаю, что лучший подход может заключаться в том, чтобы выяснить, когда представление прокрутки переместилось на новую «страницу» и в этот момент удалите и повторно добавьте разные аннотации, чтобы они имели нужный внешний вид. Трудно дать лучший ответ, потому что я не могу представить себе макет, с которым вы работаете.

Смежные вопросы