2009-12-03 9 views
7

Tengo una vista de tabla que me gustaría personalizar en función de la cantidad de filas que tiene.Cómo obtengo un recuento de filas de una UITableView

Si no tiene filas, me gustaría que la imagen de fondo solicite al usuario que agregue contenido. Si tiene 1 o más filas, me gustaría que tenga una imagen de fondo diferente para mostrar el contenido.

Estoy usando un controlador de resultados obtenidos para completar mi tabla, por cierto.

¿Alguna idea?

Respuesta

22

Bueno, esto es generalmente muy fácil de lograr, ya que sólo necesita tener UITableView adecuadamente delega a su ViewController con métodos apropiados de delegados incluidos en el archivo .m.

A continuación, puede obtener en cualquier lugar número de filas de esta manera:

[tablePropertyName numberOfRowsInSection:SECTION_NUMBER]; 

, donde el número de sección es 0 para la primera sección, 1 para el segundo, etc.

+0

Esta debería ser la respuesta correcta, ya que es la mejor solución. En lugar de confiar en el conteo de su fuente de datos, puede usar esa propiedad para determinar el número de filas en esa sección. De esa forma, independientemente de lo que le suceda a su fuente de datos (podría corromperse), está agregando la fila en el lugar correcto. –

1

Recomiendo echar un vistazo a la documentación para NSFetchedResultsController. Tiene un código de ejemplo para implementar los métodos de UITableViewDataSource (incluidos los que dicen cuántas secciones tiene la tabla, y cuántas filas hay en cada sección), además de documentar la propiedad fetchedObjects, que puede usar para ver cuántos resultados brutos has buscado

[myFetchedResultsController.fetchedObjects count]; 
5

Acepto la respuesta de Sixten Otto.

[myFetchedResultsController.fetchedObjects count]; 

Sin embargo hay más. La línea superior devolvería la cantidad de objetos independientemente de las secciones. Sin embargo, si desea realizar esto en una tabla con varias secciones, debe llamarlo de la siguiente manera.

[[myFetchedResultsController.sections objectAtIndex:<section>] numberOfObjects]; 

Puede obtener los objetos para la sección de esta manera.

[[myFetchedResultsController.sections objectAtIndex:<section>] objects]; 

** Tiene que reemplazar con el número que representa la sección.

Espero que esto ayude.

0

En Swift, puede obtener cuentan las filas UITableView por

yourTableViewName.numberOfRows(inSection: Int) 

ejemplo:

yourTableViewName.numberOfRows(inSection: 0) // returns rows count in section 0 
Cuestiones relacionadas