iphone uitableview height row halting-problem

iPhone+UITableView+altura de fila



height row (6)

Estoy configurando la altura de fila de mi UITableView usando el siguiente código

[tableView setRowHeight: 100.00];

Estoy usando una sola línea como separador en UITableView .

A pesar de establecer la altura anterior, la altura de la fila no cambia.


No creo que exista ese método en UITableView ...

En su lugar, puede usar la propiedad rowHeight ...
Pruebe, tableView.rowHeight = 100;


La altura de la fila se cuece en las celdas cuando se muestran por primera vez.

¿Configuró UITableView # rowHeight antes de configurar la fuente de datos?
Si no, hazlo.
Si por algún motivo no puede, su otra opción es llamar a UITableView # reloadData después de establecer el alto de la fila.


La mejor y más limpia solución es implementar la función de delegado (tal vez no sea la mejor si su UITableView tiene muchas filas ...).

Además, piense que UITableVieCell es UIView para que pueda cambiar su altura en primer lugar ...

Los delegados son muy poderosos en el desarrollo de iPhone, aquí el UITableViewDelage:

http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html

También puede cambiar indentForRow, displayCellForRow, heightForRow, editar cosas ...


Debe evitar heightForRowAtIndexPath si todas sus filas son de una altura similar y usa la propiedad rowHeight . De acuerdo con la documentación:

Hay implicaciones de rendimiento para usar tableView: heightForRowAtIndexPath: en lugar de rowHeight. Cada vez que se muestra una vista de tabla, llama a tableView: heightForRowAtIndexPath: en el delegado para cada una de sus filas, lo que puede dar como resultado un problema de rendimiento significativo con vistas de tabla con un gran número de filas (aproximadamente 1000 o más).

En la subclase UITableViewController podría hacerse, por ejemplo, en el método viewDidAppear (el UITableViewController tiene una referencia a tableView):

self.tableView.rowHeight = 79.f;


Deberías implementar

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

método delegado. y devuelve 100.0 allí.


Me gustó esto, aquí tableobj no es más que objeto UITableView en mi aplicación.

- (void)viewDidLoad { [super viewDidLoad]; [tableObj setRowHeight:100.0f]; }

O manejarlo en numberOfRowsInSection: como:

- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section { [tableObj setRowHeight:100.0f]; return [soandso count]; // soandso is my object }

Porque establece rowHeight antes de configurar la fuente de datos. Funcionó para mí (para alturas de fila iguales).