xcode Suppression de certains sous-vues de la vue
Salutations à tous,
Je suis un noob et j'ai essayé de travailler par le biais de ce pour quelques jours.
Je suis pour l'ajout d'images à un affichage via UItouch. La vue contient un arrière-plan au-dessus de laquelle les nouvelles images sont à ajouter. Comment puis-je effacer les images que je l'ajout de la sous-vue, sans se débarrasser de la UIImage qui est le fond. Toute aide est grandement appréciée. Merci à l'Avance.
voici le code:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event {
NSUInteger numTaps = [[touches anyObject] tapCount];
if (numTaps==2) {
imageCounter.text =@"two taps registered";
//__ remove images
UIView* subview;
while ((subview = [[self.view subviews] lastObject]) != nil)
[subview removeFromSuperview];
return;
}else {
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self.view];
CGRect myImageRect = CGRectMake((touchPoint.x -40), (touchPoint.y -45), 80.0f, 90.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:[UIImage imageNamed:@"pg6_dog_button.png"]];
myImage.opaque = YES; //explicitly opaque for performance
[self.view addSubview:myImage];
[myImage release];
[imagesArray addObject:myImage];
NSNumber *arrayCount =[self.view.subviews count];
viewArrayCount.text =[NSString stringWithFormat:@"%d",arrayCount];
imageCount=imageCount++;
imageCounter.text =[NSString stringWithFormat:@"%d",imageCount];
}
}
source d'informationauteur S. Naughton
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez besoin est une manière de distinguer les ajouté
UIImageView
objets de l'arrière-planUIImageView
. Il ya deux façons que je peux penser à le faire.Approche 1: Affecter ajouté
UIImageView
objets un tag spécial valeurChaque
UIView
objet a unetag
propriété qui est tout simplement une valeur entière qui peut être utilisé pour identifier ce point de vue. Vous pouvez définir la valeur de balise de chaque vue ajoutés à 7 comme ceci:Ensuite, pour supprimer l'ajout de vues, vous pouvez faire défiler toutes les sous-vues et seulement de supprimer ceux avec une valeur de balise de 7:
Approche 2: n'oubliez pas l'arrière-plan de la vue
Une autre approche est de conserver une référence à l'arrière-plan de la vue afin de les distinguer de la vue. Faire un
IBOutlet
pour le fondUIImageView
et de l'affecter de la manière habituelle dans Interface Builder. Alors, avant de supprimer une sous-vue, assurez-vous simplement que ce n'est pas l'arrière-plan de la vue.Plus rapidement le code pour l'approche #1 en un seul fonctionnelle de la ligne de code :