Vous pouvez utiliser l'affichage personnalisé pour chaque annotation avec un UIView, un UIImageView et une Étiquette pour afficher une valeur différente. Ce sera fait dans la méthode - (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation:(id )newAnnotation. Vous devez prendre UIView double de taille avec la couleur transparente à l'égard de UIImageView à rendre la vision plus précise sur zoom in et zoom out dans mapview.
bonjour a u toute démonstration, merci de m'envoyer..je m en sorte de la difficulté.. merci. je suis résoudre mon problème facilement à partir de votre code merci bro.. Quel est le format de données stockées dans la alertInfoArray et dans laquelle la fonction peut nous donner la tag à l'annotation J'ai aussi résolu le problème. il m'a beaucoup aidé. Merci @Ashutosh Pouvons-nous obtenir un swift version s'il vous plaît?
Créer un personnalisé AnnotationView classe (MKAnnotationView)
Assurez-vous de définir le titre, l'image d'arrière-plan, et d'autres éléments de votre annotations personnalisées dans le AnnotationView classe en tant que propriétés.
Remplacer la méthode suivante, et de définir les valeurs des propriétés que vous avez définies dans AnnotationView classe.
-(MKAnnotationView*) mapView:(MKMapView*)mapView viewForAnnotation:(id<MKAnnotation>)annotation{if([<Object of CustomAnnotationclass> isKindOfClass:[MKUserLocationclass]])returnnil;CustomAnnotation* custom_anno =(CustomAnnotation*)[mapView dequeueReusableAnnotationViewWithIdentifier:@"custom_annotation"];if(!custom_anno){
custom_anno =[[CustomAnnotation alloc] initWithAnnotation:annotation reuseIdentifier:@"custom_annotation"];
custom_anno.frame =CGRectMake(0,0,250,57.5);
custom_anno.canShowCallout = NO;//CHange if you want to change callout behaviour (thats is it's abilty to apper). I set it top no because i did not want a callout.UIImageView* icon =[[UIImageView alloc] initWithFrame:CGRectMake(5,5,40,40)];[icon setImageWithURL:<your image> placeholderImage:<your placeholder image>];//placeholder image = nil if you do not want one.
icon.backgroundColor =[UIColor lightGrayColor];UILabel* name =[[UILabel alloc] initWithFrame:CGRectMake(50,5,200,20)];
name.text = nameValue;UILabel* category =[[UILabel alloc] initWithFrame:CGRectMake(50,25,200,20)];
category.text = otherValue;[custom_anno addSubview:icon];[custom_anno addSubview:name];[custom_anno addSubview:category];}return custom_anno;}
Mes annotations personnalisées classe a 'Annotation' personnalisé et de la vue d'annotation de classe était "CustomAnnotation'. Modifier en fonction de vos besoins.
Après cela, il suffit de créer un objet de la Annotationclasse, et de l'utiliser.
EDIT :
Assurez-vous de remplacer les suivantes méthode, il int annotations personnalisées vue de classe:
Vous pouvez utiliser l'affichage personnalisé pour chaque annotation avec un
UIView
, unUIImageView
et une Étiquette pour afficher une valeur différente. Ce sera fait dans la méthode- (MKAnnotationView *)mapView:(MKMapView *)newMapView viewForAnnotation:(id )newAnnotation
. Vous devez prendreUIView
double de taille avec la couleur transparente à l'égard deUIImageView
à rendre la vision plus précise sur zoom in et zoom out dans mapview.Code-----
Espère que cette aide.
merci. je suis résoudre mon problème facilement à partir de votre code merci bro..
Quel est le format de données stockées dans la alertInfoArray et dans laquelle la fonction peut nous donner la tag à l'annotation
J'ai aussi résolu le problème. il m'a beaucoup aidé. Merci @Ashutosh
Pouvons-nous obtenir un swift version s'il vous plaît?
OriginalL'auteur iEinstein
MKAnnotation
)MKAnnotationView
)Assurez-vous de définir le titre, l'image d'arrière-plan, et d'autres éléments de votre annotations personnalisées dans le
AnnotationView
classe en tant que propriétés.Remplacer la méthode suivante, et de définir les valeurs des propriétés que vous avez définies dans
AnnotationView
classe.Mes annotations personnalisées classe a 'Annotation' personnalisé et de la vue d'annotation de classe était "CustomAnnotation'. Modifier en fonction de vos besoins.
Après cela, il suffit de créer un objet de la
Annotation
classe, et de l'utiliser.EDIT :
Assurez-vous de remplacer les suivantes méthode, il int annotations personnalisées vue de classe:
.h:
.m:
}
EDIT 2 :
Vous pouvez l'utiliser dans votre vue-contrôleur comme ceci :
merci beaucoup.. je résoudre mes problèmes...
OriginalL'auteur n00bProgrammer