iOS implementa una buena práctica de vista de desplazamiento larga

Hola, quisiera implementar una vista de desplazamiento muy larga para una vista similar a un foro, diseñando algo similar a esta image

¿sería posible implementar esto con una vista de tabla (teniendo en count los bordes no muy definidos entre las celdas y algunas vistas superpuestas a otras celdas) o debería escribir una vista de desplazamiento larga con muchas subvistas (¿gestión de memory?)? Gracias

Use UITableView , y sería mejor si UITableViewCell y utilice el método layoutSubviews para ajustar las subvistas cuando ajuste el tamaño de la celda. Cambie el tamaño de celda según el contenido presente en él.

Compruebe los siguientes enlaces para esto:

  • iOS SDK: creación de células UITableView personalizadas
  • Personalizar las celdas de vista de tabla para UITableView
  • Fácil dibujo personalizado de UITableView

Una pieza de consejo: ¡sea perezoso!
si desea presentar muchas vistas en scrollView, no las cargue todas. La mejor práctica para esto es usar un UITableView . Si conoce la altura de cada celda antes de dibujarlas en la pantalla, puede implementar este método

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

en su fuente de datos de Tableview. Si desea utilizar un UIScrollView, agregue sus sub-vistas a petición cuando el usuario se desplace. El mejor enfoque es implementar el método de delegado:

 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 

puedes hacer una UIView personalizada y en eso puedes hacer todo lo que quieras y simplemente agregar tu vista personalizada en cellForRowAtIndexPath como

[cell.contentView addSubview:yourcustomview];

el código es

 CV = [[CustomView alloc] initWithFrame:CGRectMake(0, 0, 320, heightofviewyouwant)]; CV.delegate = self; cell.selectionStyle = UITableViewCellAccessoryNone; [CV setTitle:[[yourarray objectAtIndex:indexPath.row]objectForKey:@"yourkey"]]; CV.backgroundColor = [UIColor whiteColor]; [cell.contentView addSubview:CV]; return cell;