Saludos a todos,xcode Quitar algunas subvistas de la vista
Soy novato y he estado tratando de solucionar esto durante unos días.
Estoy agregando imágenes a una vista a través de UItouch. La vista contiene un fondo sobre el cual se agregan las nuevas imágenes. ¿Cómo elimino las imágenes que agrego de la subvista, sin deshacerme del UIImage que es el fondo? Cualquier ayuda es muy apreciada. Gracias por adelantado.
Aquí está el código:
- (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];
}
}
respuesta 1 es generalmente correcta, pero tenga en cuenta que usted podría restringir la búsqueda usando [UIView viewWithTag: 7] y no tiene que iterar a través de cada vista individual. Por supuesto, esto puede no salvarle nada, pero es bueno saber – justin
Chicos muchas gracias por su aporte. Voy a probar esto hoy. Hice un largo trabajo para agregar el fondo una vez que se borró todo. No exactamente elegante pero funcionó .. –
Su solución es muy inteligente, aunque podría no funcionar tan bien cuando necesite más control sobre sus vistas. Si intenta usar 'viewWithTag:', como lo sugiere @justin, tenga en cuenta que solo devolverá la primera vista encontrada con una etiqueta que coincida. Es un método muy conveniente cuando solo hay una vista de este tipo. Si tiene muchas vistas con etiquetas coincidentes, terminará iterando para encontrarlas todas. Sugerencia adicional: las vistas tienen un valor de etiqueta predeterminado de cero, por lo tanto, evite usar cero como valor de etiqueta de identificación. –