IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

fonction drawrect qui marche pas bien..


Sujet :

Objective-C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 26
    Points : 19
    Points
    19
    Par défaut fonction drawrect qui marche pas bien..
    Bonjour,
    J'ai une méthode -(void) drawRect:(CGRect) rect; dans mon application qui me permet de dessiner des routes sur une carte.
    J'appelle cette fonction plusieurs fois, parce que j'ai des routes de couleurs différentes. Mon problème est que la fonction est appelé pour chaque route, mais ça me dessine qu'une couleur au début, après faut que je déplace ma carte pour que les autres couleurs s'affichent.

    J'appelle de la même façon la méthode pour chaque route... Je vois pas du tout ou est mon problème. Quelqu'un peut regarder mon code de drawrect s'il vous plait ? Je le poste ici.

    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    -(void) drawRect:(CGRect) rect
    {
    CSRouteAnnotation* routeAnnotation = (CSRouteAnnotation*)self.routeView.annotation;
     
    if(!self.hidden && nil != routeAnnotation.routes)
    {
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    if(nil == routeAnnotation.lineColor)
    routeAnnotation.lineColor = [UIColor blueColor]; 
     
    CGContextSetStrokeColorWithColor(context, routeAnnotation.lineColor.CGColor);
    CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
    CGContextSetLineWidth(context, 4.0);
    for(int idR = 0; idR < routeAnnotation.routes.count; idR++){
    NSMutableArray * lespoints = [routeAnnotation.routes objectAtIndex:idR];
     
    for(int idx = 0; idx < lespoints.count; idx++)
    {
    CLLocation* location = [lespoints objectAtIndex:idx];
    CGPoint point = [self.routeView.mapView convertCoordinate:location.coordinate toPointToView:self];
     
    if(idx == 0)
    {
    CGContextMoveToPoint(context, point.x, point.y);
     
    }
    else
    {
     
    CGContextAddLineToPoint(context, point.x, point.y);
    }
    }
     
    }
    CGContextStrokePath(context);
    }

  2. #2
    Expert éminent

    Avatar de Marcos Ickx
    Homme Profil pro
    Blogueur
    Inscrit en
    Mai 2007
    Messages
    1 557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Blogueur

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 557
    Points : 6 733
    Points
    6 733
    Billets dans le blog
    1
    Par défaut
    Je ne pense pas que le soucis soit dans ce code là. Mais plutôt dans le code qui appelle cette fonction/méthode.

    Si tu pouvais rajouter ce code appelant, ce serait bien.
    Marcos Ickx

    Liens intéressants :
    Mon blog,
    Mon compte Twitter

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 938
    Points : 4 359
    Points
    4 359
    Par défaut
    est appelé automatiquement par le système hiérarchique de vues pour rafraichir les parties qui doivent être redessinées…

    si votre vue n'est pas rafraîchie c'est que vous ne signaler pas les parties "dirty" de vos vues correctement…

    lisez la documentation… et les nombreux exemples sur le site d'Apple et ailleurs…

    cfr

    NSView, setNeedsDisplay: et setNeedsDisplayInRect:
    CALayer, setNeedsDisplay et setNeedsDisplayInRect:

Discussions similaires

  1. [AC-2013] Fonction compte qui marche pas bien
    Par djibouli dans le forum Macros Access
    Réponses: 4
    Dernier message: 12/07/2014, 10h41
  2. fonction pluriel qui marche pas
    Par l1informatique dans le forum Général Python
    Réponses: 27
    Dernier message: 26/01/2014, 22h04
  3. Class herite de JButton qui marche pas bien
    Par MinsK dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 13/03/2008, 17h57
  4. fonction javascript qui marche pas
    Par iam dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/02/2008, 14h46
  5. envoi en tcp qui marche pas bien
    Par zarbiman dans le forum Développement
    Réponses: 2
    Dernier message: 18/12/2007, 00h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo