2011-08-27 19 views
14

Estoy usando el código siguiente para crear una apariencia más grande y más limpia en una UITableView simple (no agrupada). Está funcionando bien a menos que tenga una mesa vacía, entonces la altura de la celda se establece en altura normal. Tengo el Separatorstyle estándar (las líneas grises) así que parece malo si está vacío.UITableview cells height no funciona en una tabla vacía?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    return 75; 
} 

¿Alguna idea de cómo solucionar esto?

EDIT:

encontrado una solución aún mejor donde i incluso no mostrar las líneas si la tabla es "vacío" y de texto muestra guía en su lugar.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if ([dataArray count] == 0) { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; 
     [pleaseAddStuffText setHidden:NO]; 
    } else { 
     [theTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 
     [pleaseAddStuffText setHidden:YES]; 
    } 
    return [dataArray count]; 
} 
+1

Por "tabla vacía", ¿te refieres a 'numberOfSectionsInTableView:' y/o 'tableView: numberOfRowsInSection:' devuelve 0? –

+0

Corregir mi buen señor. – David

+1

, entonces su 'tableView: heightForRowAtIndexPath:' nunca se debe llamar, puede establecer un punto de interrupción para verificarlo. –

Respuesta

33

Usted debe ser capaz de forzar una altura de fila en todo momento mediante el establecimiento de rowHeight, incluso si el número de filas es 0.

self.tableView.rowHeight = 75.0; 

También puede establecer que en IB.

heightForRowAtIndexPath parece que solo se invoca si se está configurando una celda en cellForRowAtIndexPath, mientras que esta es una propiedad de la tabla vista y siempre está presente.

+0

Super simple, funciona a la perfección. –

+0

También funciona en NSTableView para aquellos que se preguntan. – Andrew

-1

¿Qué quieres decir con tabla vacía? Si la tabla completa está vacía, el número de sección devuelto para la tabla está vacío. Eso significa que no se mostrará nada sobre la mesa.

Si tiene una línea de tabla vacía = celda de tabla, entonces debe asegurarse de que cell at indexpath devuelve algo donde solo necesita poner valores vacíos. Entonces tendrás una línea vacía entre tus otras líneas en tu mesa.

¿Qué es exactamente/debería estar vacío?

+0

Tabla vacía = No se mostrarán datos/celdas. Mide la altura entre el estilo Separator. – David

Cuestiones relacionadas