ios uitableview uiviewcontroller

ios - automaticallyAdjustsScrollViewInsets no funciona en UITableViewController incorporado con UITableView



uiviewcontroller (2)

Cuando tiene una UITableView dentro de un UIViewController, debe desactivar el indicador automáticamenteAdjustsScrollViewInsets (en el editor de código o del guión gráfico) para obtener el espacio superior y evitar la barra superior. Ahora tengo un UIViewController secundario que usa una secuencia "incrustada" dentro de una vista secundaria que contiene una UITableView. Estoy viendo el "espacio" (el área amarilla) pero borré todos los indicadores en el UIViewController incorporado e incluso borré el indicador manualmente en prepareForSeque, pero el espacio permanece. ¿Hay algo más que uno tenga que hacer o es un error?


Tuve este problema esta mañana.

Resulta que debe desmarcar automáticamente la propiedadAdjustsScrollViewInsets de parentViewController en lugar de secundario cuando está usando el modo de controlador de vista incrustado como lo hizo.

Aquí está mi estructura de UI:

ParentViewController tiene una vista de contenedor que apunta a ChildViewController (subclase de UITableViewController ).

Desmarque automáticamente AjustaScrollViewInsets en ChildViewController : no funciona

Desmarque automáticamente AdjustsScrollViewInsets en ParentViewController : funciona!


He estado luchando con esto durante horas hasta que me di cuenta de que la respuesta de @ user3188985 era lo que estaba sucediendo, aunque la solución no funcionó para mí.

Esto se debe a que tengo dos controladores de vistas que contienen scrollViews, y quiero que uno se ajuste, y uno que no, ¿qué hacer?

Bueno, si desactiva el ajuste automático en el controlador principal, entonces debe ajustar manualmente el scrollView que necesita, por ejemplo, configurar contentInset en los casos apropiados.

Si deja el ajuste automático en el elemento primario, he encontrado que un scrollView ficticio, con un marco cero, oculto, todas las propiedades de desplazamiento establecidas en NO, y si está antes de su desplazamiento visible / habilitado en la jerarquía de vista de controlador de vista secundaria, luego recibirá el ajuste automático y dejará solo su vista visible de scrollView.

De forma alternativa, puede hacer que la vista superior del controlador de vista contenida sea un scrollView con desplazamiento deshabilitado, y hacer que contenga otro scrollView con desplazamiento habilitado, esto logrará lo mismo que el enfoque "ficticio".

Lo que puede ver aquí, es que el indicador de ajuste automático de solo el controlador de vista principal se tiene en cuenta, pero su propia jerarquía de controlador de vista se recorre para encontrar scrollViews para ajustar en cada controlador contenido. Esto es simplemente un comportamiento UIKit no deseado. Sería bueno comprobar la configuración de ajuste automático de cada controlador de niño antes de decidir meterse con él: /