2012-08-13 13 views
16

Soy muy nuevo en iOS. Tengo una UITableView que se llena con muchas celdas personalizadas, pero la celda inferior no está visible correctamente cuando se desplaza hacia abajo. Mi valor Y de UITableView es 44 y Height es 480. Solo la mitad de la última celda está visible cuando se desplaza hacia abajo. ¿Cómo puedo solucionar este problema?UITableview no visible la última celda cuando se desplaza hacia abajo

Gracias de antemano.

Respuesta

62

Uso -

tableView.contentInset = UIEdgeInsetsMake(0, 0, 120, 0); //values 

pasado son - arriba, izquierda, abajo, derecha

paso inferior de desplazamiento según sus necesidades.

+1

Esto no resuelve el problema real, la vista en sí misma está desalineada, no el contenido. –

+0

Esto me ayudó a resolver un poco diferente adecuadamente. Donde quería que TableView se desplazara pasó su última celda para mostrar un indicador de actividad. ¡Vota de mí! – Tander

+0

Esto resolvió mi problema también. Usar un control de controlador de navegación personalizado para presentar una vista de tabla y tenía el mismo problema que iDia. – mafiOSo

2

Si tiene una barra de estado visible en la parte superior, ocupará 20px, lo que empujará hacia abajo su tableView por el mismo. Para evitar esto, hacer que la altura tableView 460 en lugar de 480.

+0

No deberías codificar el valor de la altura de la barra de estado, en su lugar debería usarse algo parecido a esta respuesta http://stackoverflow.com/a/7038870/707983 –

3

es porque se establece el marco de su tableview mal, si su punto de vista tiene una barra de navegación, por lo general utilizar este código:

CGRect frame = self.view.bounds; 
frame.height -= 44; 

44 es el altura de su barra de navegación.

0

Si usted está en iOS7 y el uso de una barra de herramientas control de navegación, asegúrese de configurarlo para que translúcido:

self.navigationController.toolbar.translucent = NO; 
0

Para mí esto es trabajado.

he comentado mi código

-(void)viewWillLayoutSubviews 
{ 
dispatch_async(dispatch_get_main_queue(), ^{ 
    //This code will run in the main thread: 
    CGRect frame = tableViewObj.frame; 
    frame.size.height = tableViewObj.contentSize.height;//commenting this code worked. 
    tableViewObj.frame = frame; 

}); 

} 

Eso es todo. Funcionó para mí Asegúrese de no haber cambiado el marco de tabla vista en algún lugar mientras se encuentra en el archivo de implementación.

Cuestiones relacionadas