¿Aparecen las celdas del UITableView
programa en el espacio vacío cuando te desplazas hacia abajo?
Si es así, entonces el problema podría ser la inserción que se agrega al UITableView
controlador de navegación que tiene en su vista. El recuadro se agrega a la vista de tabla para que el contenido se coloque debajo de la barra de navegación cuando no se ha producido ningún desplazamiento. Cuando se desplaza la tabla, el contenido se desplaza y se muestra debajo de una barra de navegación transparente. Por supuesto, este comportamiento solo se desea si la vista de tabla comienza directamente debajo de la barra de navegación, que no es el caso aquí.
Otra cosa a tener en cuenta es que iOS ajusta el contenido de contenido solo para la primera vista en la jerarquía de vistas si es UIScrollView
o es descendiente (por ejemplo, UITableView
y UICollectionView
). Si su jerarquía de vistas incluye múltiples vistas de desplazamiento, automaticallyAdjustsScrollViewInsets
realizará ajustes solo en la primera.
Aquí se explica cómo cambiar este comportamiento:
a) Generador de interfaz
- Seleccione el controlador de vista
- Inspector de atributos abiertos
Hay una propiedad llamada "Ajustar inserciones de vista de desplazamiento" en el inspector de atributos de IB (cuando se selecciona un controlador de vista) que está activada de forma predeterminada. Desmarca esta opción:
(Imagen cortesía de Dheeraj D )
No estoy seguro de qué versión de Xcode introdujo esta opción (no la detectó en las notas de la versión), pero al menos está disponible en la versión 5.1.1.
Editar: para evitar confusiones, esta fue la tercera opción mencionada en los comentarios
b) programáticamente
Agregue esto a ie viewDidLoad
(créditos a la respuesta de Slavco Petkovski y al comentario de Cris R )
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
c) Esto podría ser relevante para los niños de edad escolar
Puedes arreglar esto agregando
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
O si está utilizando IB y si la barra de navegación no es transparente (no se puede ver en la captura de pantalla)
- Seleccione el controlador de vista
- Inspector de atributos abiertos
- En la sección Ver opciones del controlador Extender bordes, anule la selección de "Bajo las barras superiores"