2011-02-03 12 views

Respuesta

12

Acabo de probar esto y funcionó para mí. (A pesar de su código también se ve bien para mí ...)

foreach (UIView view in tableView.Subviews) { 
    view.RemoveFromSuperview(); 
} 

Si esto no funciona para usted, puede que haya algo que impide que los subvistas de ser eliminado.

0

Intente forzar una actualización de la vista después o invocar la llamada Eliminar específicamente en el hilo principal.

4

El problema con su muestra es cómo construyó el ciclo.

Cuando elimina la vista en 0, la matriz de Subvistas es un elemento más corto, y el elemento 1 se convierte en el elemento 0 en la siguiente iteración. La variable i por el contrario sigue creciendo, por lo que terminan vista 1.

+1

algo basado-0 podría evitar que, ¿derecho? Me gusta 'while (this.Subviews.Length> 0) {this.Subviews [0] .RemoveFromSuperview(); } ' – riha

0

saltarse Si es absolutamente necesario utilizar un bucle for, esto va a hacer

for (int i = this.Subviews.Length - 1 ; i > 0 i--) 
    { 
     this.Subviews[i].RemoveFromSuperview(); 
    } 
Cuestiones relacionadas