Pozdrawiam wszystkich,xcode Usuwanie niektórych subviews z widoku
Jestem noobem i staram się to przezwyciężyć przez kilka dni.
Dodaję obrazy do widoku za pomocą UItouch. Widok zawiera tło, na którym dodawane są nowe obrazy. Jak wyczyścić obrazy, które dodaję z podglądu, bez pozbycia się UIImage, która jest tłem. Każda pomoc jest bardzo doceniana. Z góry dziękuję.
oto kod:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event {
NSUInteger numTaps = [[touches anyObject] tapCount];
if (numTaps==2) {
imageCounter.text [email protected]"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];
}
}
Odpowiedź 1 jest ogólnie poprawne, ale zauważ, że można ograniczyć wyszukiwanie za pomocą [UIView viewWithTag: 7] nie trzeba powtarzać przez każdy widok. Oczywiście, to może cię nie uratować, ale dobrze jest wiedzieć, – justin
Wielkie dzięki dla twojego wkładu. Wypróbuję je dzisiaj. Zrobiłem długą pracę, która polegała na dodaniu zaplecza po tym, jak wszystko zostało oczyszczone. Niezupełnie elegancki, ale zadziałało. –
Twoje obejście jest bardzo sprytne, ale może nie działać tak dobrze, gdy potrzebujesz większej kontroli nad swoimi widokami. Jeśli spróbujesz użyć 'viewWithTag:', jak zasugerował @justin, pamiętaj, że zwróci on tylko pierwszy widok znaleziony z pasującym tagiem. Jest to bardzo wygodna metoda, gdy istnieje tylko jeden taki widok. Jeśli masz wiele widoków z pasującymi tagami, skończy się iteracją, aby je wszystkie znaleźć. Dodatkowa wskazówka: Widoki mają domyślną wartość znacznika równą zero, więc unikaj używania zera jako wartości znacznika identyfikującego. –