2011-02-26 15 views
7

que necesitan para eliminar la imagen de un subviewsScrollView y yo tratamos de sacarlo del array de subviews pero eso es una NSArray que es inmutable.subvistas Extracción de UIScrollView

¿Cómo se puede eliminar subview del scrollviews array de subviews?

Respuesta

35
NSArray *viewsToRemove = [scrollView subviews]; 
    for (UIView *v in viewsToRemove) [v removeFromSuperview]; 
+1

+1 para bioffe para una buena respuesta ...... – Sabby

+2

Si lo hace, también quite los indicadores de desplazamiento ... parece que tenemos que comprobar el tipo de la vista que se retira . –

1

Llamar-removerDeSuperview en la subvista.

12

Usted puede hacer esto,

[[scrollView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
2
for (UIView *v in [scrollView subviews]) { 
    [v removeFromSuperview];  
} 
5

Esto eliminará todos los subvistas de un UIScrollView pero sus indicadores de desplazamiento: _scrollView.showsHorizontalScrollIndicator = _scrollView.showsVerticalScrollIndicator = NO; [_scrollView.subviews makeObjectsPerformSelector: @selector (removeFromSuperview)]; _scrollView.showsHorizontalScrollIndicator = _scrollView.showsVerticalScrollIndicator = YES;

+1

Agregue alguna descripción de lo que hace este fragmento de código ... – joe

+0

Aparentemente '[_scrollView.subviews makeObjectsPerformSelector: @selector (removeFromSuperview)];' eliminará todas las subvistas de UIScrollView, incluidos sus indicadores de desplazamiento. Ocultar los indicadores de desplazamiento antes de eliminar todas las subvistas de la vista de desplazamiento asegurará que los indicadores de desplazamiento no se eliminen de la vista de desplazamiento. – calinb

1

Swift

for subview in scrollView.subviews { 
    subview.removeFromSuperview() 
} 
Cuestiones relacionadas