Afficher un Label après un "long press", et le supprimer ensuite...
Bonjour,
Je suis en train de m'attaquer à l'utilisation des gestes... et après m'être pas mal torturé les neurones, j'ai enfin réussi à faire la première partie...
En fait, j'ai une MKMapView, sur laquelle j'ai ajouté quelques MKOverlay (5 ou 6) qui sont principalement des polygones. Je souhaiterais, lorsque l'on fait un appui long, afficher le titre du polygone touché (s'il y en a un), mais je souhaiterais que ce label disparaisse lorsque l'on relâche le touch...
J'ai réussi à identifier s'il y a un polygone sous le doigt, et à afficher le label, mais je ne vois pas comment le faire disparaà®tre ensuite. En fait, je ne sois pas utiliser le bon geste...
Voici mon code :
/crazy.gif' class='bbc_emoticon' alt=' ' />
Quelqu'un a-t-il une petite piste ? Merci d'avance...
Je suis en train de m'attaquer à l'utilisation des gestes... et après m'être pas mal torturé les neurones, j'ai enfin réussi à faire la première partie...
En fait, j'ai une MKMapView, sur laquelle j'ai ajouté quelques MKOverlay (5 ou 6) qui sont principalement des polygones. Je souhaiterais, lorsque l'on fait un appui long, afficher le titre du polygone touché (s'il y en a un), mais je souhaiterais que ce label disparaisse lorsque l'on relâche le touch...
J'ai réussi à identifier s'il y a un polygone sous le doigt, et à afficher le label, mais je ne vois pas comment le faire disparaà®tre ensuite. En fait, je ne sois pas utiliser le bon geste...
Voici mon code :
<br />
-(IBAction)handleGesture {<br />
CGPoint location = [self.longPressGestureRecognizer locationInView:self.view];<br />
CLLocationCoordinate2D coordinate = [self.myMap convertPoint:location toCoordinateFromView:self.view];<br />
MKMapPoint mapPoint = MKMapPointForCoordinate(coordinate);<br />
BOOL mapCoordinateIsInPolygon = FALSE;<br />
for (MKPolygon *region in self.myMap.overlays){<br />
MKPolygonView *polygonView = (MKPolygonView *)[self.myMap viewForOverlay:region];<br />
CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];<br />
mapCoordinateIsInPolygon = CGPathContainsPoint(polygonView.path, NULL, polygonViewPoint, NO);<br />
if (mapCoordinateIsInPolygon) {<br />
UILabel *myLabel=[[UILabel alloc] initWithFrame:CGRectMake(location.x, location.y, 100, 30)];<br />
myLabel.text=[[self.myOverlaysDescription objectAtIndex:[[self.myMap overlays] indexOfObject:[polygonView overlay]]] objectForKey:@"Title"];<br />
myLabel.textColor=[UIColor redColor];<br />
myLabel.backgroundColor=[UIColor clearColor];<br />
myLabel.font=[UIFont systemFontOfSize:12];<br />
[self.myMap addSubview:myLabel];<br />
[myLabel release];<br />
}<br />
}<br />
}<br />
/crazy.gif' class='bbc_emoticon' alt=' ' />
Quelqu'un a-t-il une petite piste ? Merci d'avance...
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
valeur UIGestureRecognizerStateBegan => la gesture vient de se produire
valeur UIGestureRecognizerStateEnded => la gesture vient de se TERMINER
Merci en tout cas pour ton aide. Je poursuis mes essais !
Voila ce que j'ai finalement fait, si çà peut servir à quelqu'un...
Si vous avez des remarques, ou améliorations éventuelles...
Merci Draken, tu m'as remis sur la voie que j'avais abandonné ! Pour la peine, je vais boire un Perrier Citron à ta santé !! /cliccool.gif' class='bbc_emoticon' alt=' ' />