2011-06-08 30 views
6

Solo tengo una pregunta con respecto a tableView.Sección dentro de una sección - UITableView -

Sé que podemos devolver la cantidad de secciones y filas.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

Podría decirme cómo puedo tener algo como:

  • una sección dentro de una sección (y otra sección, si es posible) - - Y a continuación, configurar las filas allí?

Y lo que iba a volver en

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

Respuesta

9

Usted tendrá que hacer su propia aplicación en cellForRowAtIndexPath donde se devuelve una fila que realmente está compuesta por varias filas y tal vez una etiqueta de cabecera. O tal vez sea mejor hacer que cada dos filas sea una "fila de encabezado" y verificar en cellForRowAtIndexPath ya sea que esté en una "fila de encabezado" o una fila normal; algo como esto:

if (indexPath.row == 0) { 
    // return header row 
} else { 
    // return normal row 
} 

y por supuesto en numberOfRowsInSection tendrá que devolver la cantidad normal de filas + 1 para las secciones con un cabezazo.

+1

¡Suena lógicamente increíble! ¿Qué devolvería en numberOfSections y numberOfRowsInSection? – Legolas

+1

Bueno, supongamos que tiene 3 secciones principales y 1 tiene 3 subsecciones. numberOfSections debería ser 3 y usted devolvería rows + 3 para numberOfRowsInSection cuando section == 0. Uno para el encabezado y 3 filas. Y en cellForRowAtIndexPath devolvería la fila especial del encabezado solo cuando indexPath.row == 0. – vakio

+1

Disculpe, quiero decir (número normal de filas) + 3 filas de encabezado. 3 para los encabezados y luego las filas normales. Y ahora tendrá que hacer un seguimiento de dónde está utilizando los encabezados, por lo que cuando esté en cellForRowAtIndexPath devolverá un encabezado para decir la fila 0, 5 y 8 en la sección 0. Esto significa que tiene filas normales en 1,2,3, 4 (subsección 1), 6,7 (subsección 2) etc. Obtendrá (incluso más) complicaciones para las subsecciones secundarias, pero podrías generar todo el árbol de ellas usando NSDictionaries dentro de NSDictionaries o algo así. – vakio

Cuestiones relacionadas