Obtener todas las subvenciones para un UIScrollView

Necesito get una matriz de todas las subvenciones en un UIScrollView . En este momento estoy usando

 NSArray *subviews = [myScrollView subviews]; 

pero esto solo parece devolver las subvistas que están visibles en el momento en que se ejecuta el código. Necesito todas las subvenciones en todo el scope de UIScrollView, incluso las que están ocultas actualmente (como en la pantalla apagada). Como obtendria eso

Básicamente, estoy buscando algo así como la propiedad contentSize de un UIScrollView , excepto que en vez de devolver el tamaño del UIScrollView si fuera lo suficientemente grande como para mostrar todo su contenido, quiero que devuelva el contenido mismo.

EDIT: Creo que lo he descubierto: la vista de desplazamiento en la que esto no funciona es en realidad una UITableView , y creo que está eliminando las celdas que están fuera de la pantalla y es por eso que no aparecen . Voy a hacer algunas testings para confirmar.

Intenta con el siguiente código que funciona para mí.

 for(UIView * subView in myScrollView.subviews ) // here write Name of you ScrollView. { // Here You can Get all subViews of your myScrollView. // But For Check subview is specific UIClass such like label, button, textFiled etc.. write following code (here checking for example UILabel class). if([subView isKindOfClass:[UILabel class]]) // Check is SubView Class Is UILabel class? { // You can write code here for your UILabel; } } 

tl; dr

Resulta que

 NSArray *subviews = [myScrollView subviews]; 

de hecho devolverá todas las sub-vistas en un UIScrollView *myScrollView , incluso si están fuera de la pantalla.


Los detalles

El problema que estaba teniendo era que la vista de desplazamiento en la que intentaba utilizar esto era en realidad una UITableView , y cuando una UITableViewCell en una UITableView se sale de la pantalla, realmente se elimina de UITableView , así que cuando llamaba subviews , las celdas que estaba buscando ya no estaban en la vista de desplazamiento.

Mi solución era build todos mis UITableViewCell s en un método separado llamado por mi viewDidLoad , luego poner todas esas celdas en una matriz. Entonces, en lugar de usar subviews , simplemente usé esa matriz. Por supuesto, hacerlo de esta manera perjudica un poco el performance (en cellForRowAtIndexPath , simplemente devuelve la celda de la matriz, que es más lenta que el método dequeueReusableCellWithIdentifier que se usa normalmente), pero fue la única manera que pude encontrar para get el comportamiento Lo necesitaba.