Pregunta

Recientemente me encontré con este sitio web y he estado intentando agregar a mi llamada ver un botón (de una imagen).

El código en el ejemplo de sitios web funciona bien, pero cuando traté de agregar el mismo código a mi proyecto no obtengo los mismos resultados.

¡Obviamente hay algo que me he perdido, pero parece que no puedo resolverlo!

Aquí está mi código para anotar:

- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation{
    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
    annView.pinColor = MKPinAnnotationColorGreen;

    UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeCustom];
    advertButton.frame = CGRectMake(0, 0, 23, 23);
    advertButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    advertButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

    [advertButton setImage:[UIImage imageNamed:@"button_right.png"] forState:UIControlStateNormal];
    [advertButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];

    annView.rightCalloutAccessoryView = advertButton;

    annView.animatesDrop=TRUE;
    annView.canShowCallout = YES;
    annView.calloutOffset = CGPointMake(-5, 5);
    return annView;
}

Cualquier ayuda sería apreciada! :)

¿Fue útil?

Solución 3

Lamento responder mi propia pregunta, pero esto se resolvió configurando el delegado de MKMapView en ViewController. ¡Uf, me tomó un tiempo descubrirlo y es tan simple!

Otros consejos

Ese tipo está usando una imagen personalizada para imitar la divulgación detallada. En realidad, puede obtener la divulgación de detalles estándar con bastante facilidad:

[UIButton buttonWithType:UIButtonTypeDetailDisclosure];

En lugar de establecer el objetivo como lo hizo aquí:

[advertButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];

Puede usar el delegado predeterminado:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top