Mesa ios con secciones dinámicas y dos celdas prototipo diferentes.

Soy nuevo en la progtwigción ios, así que tenme en count si la pregunta es simple. Tengo una tabla de datos central asignada a un controller de vista de tabla. Los datos en él actualmente tienen el siguiente aspecto: hay una célula prototipo: tabla simple sin secciones

Necesito resumir los datos por dates y mostrar los detalles de cada date en una sección diferente con el total resumido subiendo como la primera fila. Algo como:

tabla seccionada con dos celdas prototipo

Mi pregunta es ¿esto es factible? Estoy pensando que necesito crear secciones y dos celdas prototipo dentro de cada celda de la tabla. Agradecería una rápida retroalimentación.

¡Gracias a todos!

La manera fácil de hacerlo es usar encabezados de sección. Puede usar una sola cadena ( @"%@: %@", date, total ) o una vista de envoltorio con una label a la izquierda para la date y a la derecha para el total.

 -(NSString *) tableView:(UITableView *)tv titleForHeaderInSection:(NSInteger)s { NSString *dateString = [self dateStringForSection:s]; float total = [self totalForSection:s]; return [NSString stringWithFormat:@"%@: %0.2f", dateString, total]; } 

O

 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { return [self wrappedHeaderForSection:s]; } 

Tendrá que implementar dateStringForSection: o wrappedHeaderForSection: apropiadamente, por supuesto.

La forma más fácil es diseñar su UITableView en 'UITableViewStyleGrouped'.

UITableView * tab = [[UITableView alloc] initWithFrame: rect estilo: UITableViewStyleGrouped];

O bien, puede ir al generador de interfaces y, en la vista de tabla, cambiar el estilo de simple a agrupado.

El estilo 'Agrupado' divide su tabla en varias secciones.

El uso de los methods UITableViewDelegate especifica todos los parameters.

// Indica el número de la sección en la tabla

– (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView
{

 return numberOfSections; 

}

// Indica el número de filas en cada sección

– (NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: sección (NSInteger)

{

  if (section == 0) { return 2; } else if(section == 1)... 

}

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
  if (indexPath.section == 0 && indexPath.row == 0) { //Show Amount for Jul 02, 2013 cell.textLabel.text = @"Jul 02, 2013"; cell.detailTextLabel = @"20.35"; } // Do the same for all rows and section in table. 

}

Para más información: http://mobisoftinfotech.com/iphone-fitableview-tutorial-grouped-table/

También debería consultar el marco Sensible TableView. Me ahorra toneladas de time al trabajar con Core Data.