MKMapView - viewForAnnotation no se llama al cargar más resultados
-
21-09-2019 - |
Pregunta
editar para agregar * No he encontrado una solución para éste, sin embargo, ¿alguien puede ayudar por favor? Mi problema es similar a este, pero la respuesta no publicado hace t trabajo para mí - MKMapView refresco después de pin * movimientos Fin Editar
Tengo una búsqueda permitió ver mapa. Cuando la búsqueda de accesos de usuarios, mis anotaciones personalizadas se añaden a la vista del mapa. La búsqueda devuelve 20 resultados con una 'carga más' enlace. Cuando llegué a la carga más, se deben añadir más anotaciones a la vista del mapa.
El problema es - anotaciones se agrega a la vista del mapa, pero no se muestra en el mapa. Si acercar o alejar el zoom para cambiar la región del mapa, se muestran los pasadores.
Me parece que viewForAnnotations: no está recibiendo llamada cuando golpeo 'carga más'. No estoy seguro de cómo activar esto. cualquiera?
-(void)completedSearch:(NSNotification *)resultNotification
{
//begin loop
//get coordinate
customAnnotation *annot = [[customAnnotation alloc] initWithCoordinate:coordinate];
//set title subtitle
[annotationsArray addObject:annot];
//end loop
[mView addAnnotations:annotationsArray];
[mView setRegion:region animated:YES];
[mView regionThatFits:region];
}
//custom annotation
@interface customAnnotation : NSObject <MKAnnotation>
{
CLLocationCoordinate2D coordinate;
NSString* title;
NSString* info;
}
@property (nonatomic, retain) NSSting *title;
@property (nonatomic, retain) NSSting *info;
-(id) initWithCoordinate:(CLLocationCoordinate2D)c;
@end
@implementation customAnnotation
@synthesize coordinate, title, info;
-(id) initWithCoordinate:(CLLocationCoordinate2D)c
{
coordinate = c;
return self;
}
-(void)dealloc{//dealloc stuff here}
@end
Solución 2
Esto tiene algo que ver con el lapso de tiempo de la recepción de la notificación y luego añadir los pasadores de anotación. Obligándolo a usar el hilo principal para añadir pins anotación trabajadas.
Otros consejos
Sólo quería confirmar i estaba añadiendo anotaciones de un hilo - que no funciona. una vez que utilicé esta (addCameraIconOnMain añade mis annoations)
[self performSelectorOnMainThread:@selector(addCameraIconOnMain:) withObject:cd waitUntilDone:true];
su trabajó! gracias!
en mi caso el problema era que estaba añadiendo la anotación antes de que el mapa delegado. Debe ser algo como:
- (void)viewDidLoad
{
...
// map delegate
[mView setDelegate:self];
...
// add annotation
[_map addAnnotation:_poiAnnotation];
...
}