2010-07-14 4 views
0

j'ai cette méthode code:UIImageView de tableau et tactile? pour IPhone

- (void)addImageSubViewAtX:(CGFloat)x atY:(CGFloat)y { 
    CGRect myImageRect1 = CGRectMake(x, y, 30.0f, 30.0f); 
    myImage1 = [[UIImageView alloc] initWithFrame:myImageRect1]; 
    [myImage1 setImage:[UIImage imageNamed:@"status_finish.gif"]]; 
    [self.view addSubview:myImage1]; 

} 

maintenant j'utilise ce paramètre pour appeler les images code:

[self addImageSubViewAtX:160.0 atY:190.0]; 

et

[self addImageSubViewAtX:10.0 atY:190.0]; 

mais la méthode tactile fonctionne uniquement sur 1 image pas les deux

Code Promo:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint p = [touch locationInView:self.view]; 
    if (CGRectContainsPoint(CGRectMake(myImage1.frame.origin.x, myImage1.frame.origin.y, myImage1.frame.size.width, myImage1.frame.size.height), p)) 
    { 
     [pieMenu showInView:self.view atPoint:p]; 
    } 
} 

comment faire cette touche de travail pour les deux

+0

Vous auriez plus de chances d'obtenir des réponses si vous formiez votre code pour qu'il soit plus lisible. Regardez le guide de formatage. – jergason

Répondre

0

D'accord,

vous appelez 2 fois la - (void)addImageSubViewAtX:(CGFloat)x atY:(CGFloat)y - Méthode.

Dans cette méthode, vous définissez le pointeur de myImage1 sur une nouvelle instance d'un UIImageView. Donc myImage1 est la référence à la dernière UIImageView que vous avez ajoutée.

C'est pourquoi cela fonctionne seulement pour un imageView.

0

Vous la même Ré-initialisation vue de l'image (myImage1) dans votre méthode de addImageSubViewAtX ne pas créer et d'ajouter un nouveau. Ainsi, seule la dernière vue d'image est accessible dans la méthode tactile lorsque vous utilisez myImage1.

Ajoutez plutôt une nouvelle vue d'image à chaque fois. Donnez-lui une étiquette particulière avant d'ajouter et vérifiez pour une touche sur la vue avec cette étiquette.

Quelque chose comme:

- (void)addImageSubViewAtX:(CGFloat)x atY:(CGFloat)y { 
    CGRect myImageRect1 = CGRectMake(x, y, 30.0f, 30.0f); 
    UIImageView myImage1 = [[UIImageView alloc] initWithFrame:myImageRect1]; 
    [myImage1 setImage:[UIImage imageNamed:@"status_finish.gif"]]; 
    myImage1.tag = 1000; 
    [self.view addSubview:myImage1]; 
} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
UITouch *touch = [touches anyObject]; 
if ([[touch view] tag] == 1000) 
{ 
    [pieMenu showInView:self.view atPoint:p]; 
} 
} 
+0

AMAZING WOW GR8 CHAPEAUX OFF VOUS AVEZ FAIT MON JOUR :-) Je luttais pendant 3 heures DAAM – ram

+0

N'oubliez pas de libérer myImage1 à la fin de la méthode "addImageSubViewAtX ..." –

+0

bien merci beaucoup: =) – ram

Questions connexes