Аннотация не показывает выноску после установки новой координаты центра в MKMapView - PullRequest
1 голос
/ 28 сентября 2011

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

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

это код, который создает аннотации:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{

    MKAnnotationView *annView;
    annView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"currentloc"];
    if(annView == nil)
        annView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"]autorelease];

    if ([annotation isKindOfClass:[UserAnnotation class]]){
        [annView setImage:[UIImage imageNamed:@"marker_me.png"]];
    }

    if ([annotation isKindOfClass:[RestaurantAnnotation class]]){
        [annView setImage:[UIImage imageNamed:@"marker_resto.png"]];
        UIButton* rightButton = [UIButton buttonWithType: UIButtonTypeDetailDisclosure];

        [rightButton setImage:[UIImage imageNamed:@"button_arrow_normal.png"] forState:UIControlStateNormal];
        [rightButton setImage:[UIImage imageNamed:@"button_arrow_active.png"] forState:UIControlStateHighlighted];

        annView.rightCalloutAccessoryView = rightButton;
    }

    annView.canShowCallout = YES;
    annView.calloutOffset = CGPointMake(-5, 5);

    return annView;
}

это мой код, когда выбрана аннотация:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{

    if ([view.annotation isKindOfClass:[RestaurantAnnotation class]]) {
        Restaurant *selectedRestaurant = [restaurants getRestaurantByName:view.annotation.title andAddress:view.annotation.subtitle];
        [selectedRestaurants addObject:selectedRestaurant];
        NSLog(@"Restaurant %@ selected",view.annotation.title); 

        CLLocationCoordinate2D coordinates;
        coordinates.latitude = [selectedRestaurant getLocationLat];
        coordinates.longitude = [selectedRestaurant getLocationLng];
        [mapView setCenterCoordinate:coordinates animated:YES];
    }
}

Что мне нужно добавить, чтобы реализовать то, что мне нужно?

Спасибо и извините за плохой английский.

...