2012-09-07 3 views
1

Initialisation:étiquette sous Highlight doigt

Disons que j'ai 5 étiquettes, étiqueté 1-5. Ces 5 étiquettes sont attachées à un IBOutletCollection initialisés avec

@property (nonatomic, retain) IBOutletCollection(UILabel) NSMutableSet* myLineCollection; 

Ce que je veux faire:

Quand mes doigts touches et se déplace à travers l'écran, je veux recevoir quelle étiquette mon doigt est plus dans myLineCollection.

Je veux recevoir ceci parce que mon but final est de changer la couleur de l'étiquette que mon doigt est actuellement passé du rouge au bleu. Mais quand mon doigt s'éloigne, il devrait revenir à sa couleur d'origine, bleue.

Je pensais que je devrais utiliser

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

et/ou

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 

et/ou

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

J'ai essayé:

Pour utiliser les touches, et et si la déclaration pour si le toucher était dans le label.window, ou peut-être même c si le point de contact est label.frame.length loin de label.frame.center.

Comment puis-je recevoir l'étiquette de l'actuel en cours, puis faire quelque chose pour cette étiquette. c'est tout ce que j'ai besoin

+2

Ce n'est pas une écriture-my-code pour moi-site, et que ces personnes ne réagissent pas bien à phrasé comme " Répondez en termes de "ou" Votre réponse devrait. " Dites-nous ce que vous avez essayé et comment cela ne fonctionne pas. – Kevin

+0

Des phrases comme "Votre réponse devrait ..." sont un indicateur fort que cette question a été levée d'un test d'entrevue ou d'un examen. –

Répondre

2

Espoir cela vous aide:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch *touch = [touches anyObject]; 
    CGPoint touchPoint = [touch locationInView:self.view]; 
    //here loops all labels 
    for(){ 
     if (CGRectContainsPoint([lable frame],touchPoint)) { 
      //change label's background color 
     } 
    } 
} 
+0

Excellent travail. Cela pourrait fonctionner. – Comradsky