He arrastrado un UITableView simple de Jane a un UIViewController en iOS 7.
Ahora hay un desplazamiento vertical del espacio antes de que comience la primera celda. ¿Como me deshago de esto? Quiero que la primera línea esté mucho más cerca del borde superior de donde realmente comienza UITableView. No pedí la compensación grande, ¿verdad?
¿Algunas ideas?
uitableview
ios7
usuario798719
fuente
fuente
Respuestas:
De forma predeterminada, los controladores de vista de tabla rellenarán el contenido debajo de la barra de navegación para que pueda desplazarse por el contenido debajo y verlo, en un estado borroso, debajo de la barra de navegación / barra de herramientas.
Parece que lo está colocando a 44 (tal vez 64) px para moverlo desde debajo de la barra de navegación, pero ya lo compensa, por lo que obtiene un gran espacio.
Vaya al guión gráfico / xib en IB y desmarque el contenido del programa en la barra de navegación.
fuente
Adjust Scroll View insets
, elimine la marca de verificación.La nueva implementación de iOS 7 de UIViewController tiene un nuevo conjunto de opciones que permite al desarrollador elegir si el sistema agregará automáticamente inserciones para UIScrollView , UITableView y derivaciones.
Para deshabilitar este comportamiento, desmarque estas casillas para todos sus UIViewControllers deseados en InterfaceBuilder, en el inspector de objetos seleccionados de UIViewController :
Para más detalles:
fuente
De la guía de transición de iOS7:
fuente
Adjust Scroll View Insets
casilla de verificación del diseño del controlador de vista.automaticallyAdjustsScrollViewInsets = NO
en el controlador de vista.Tuve un problema similar, después de descartar un viewController, el contentOffset de mi tableView se cambió a (0, -64).
mi solución fue un poco extraña, probé todas las otras respuestas pero no tuve éxito, lo único que solucionó mi problema fue cambiar la posición tableView en el árbol de controles del .xib
fue el primer control en la Vista principal como este:
Moví el tableView justo después del ImageView y funcionó:
parece que poner la vista de la mesa en la primera posición estaba causando el problema, y mover la vista de la mesa a otra posición solucionó el problema.
PD No estoy usando autoLayout ni guiones gráficos
¡Espero que esto pueda ayudar a alguién!
fuente
resuelve mi problema similar:
fuente
if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
Intenta usar esto
tableView.separatorInset = UIEdgeInsetsZero;
Obviamente, si admite algo menos que iOS7, deberá asegurarse de que el objeto responda a este selector antes de llamarlo.
fuente
En serio, cambiar
contentOffset
no es la solución. Solo está solucionando un problema y no la causa. He estado enfrentando el mismo problema y resulta que los tableViews agrupados tienen un relleno en la parte superior. En mi caso, estableciendo el tipo en simple ha funcionado.Ojalá le ahorre a alguien unos minutos. Z.
fuente
Con iOS 9, ninguna de las otras respuestas de esta página funcionó para mí (es decir, desmarcar casillas en Storyboard, configurar
automaticallyAdjustsScrollViewInsets
enNO
).Mi solución alternativa con la que estoy realmente insatisfecho fue esta:
Las mismas líneas en
viewWillAppear
oviewDidLoad
fueron ineficaces.fuente
Adjust Scroll View insets
casilla de verificación funciona para iOS 9.A veces, obtengo un
64
espacio de altura en la parte superior de mi vista de tabla cuandoUIViewController
está incrustado dentro de un controlador de navegación.En el pasado, simplemente recreaba todo, con la esperanza de que las restricciones resultaran correctas después de una pizarra limpia.
TIL: Si no desea hacer una restricción vertical al
Top Layout Guide
, puede mantener presionada laOption
tecla para acceder alContainer Margin
.Luego asegúrese de que la
Top Space to Superview
constante esté establecida en0
. Esto funcionó para mí al menos.fuente
Esto funciona para mí:
fuente
Si agrega una UIView vacía antes de UITableView (o cualquier vista es desplazable como ScrollView y TextView), puede tener suerte.
fuente
Tenía un UITableViewController incrustado en una vista de contenedor. Para deshacerme de los 64 puntos no deseados de espacio vertical, necesitaba desmarcar 'Ajustar inserciones de vista de desplazamiento' en Interface Builder y establecer contentInset de UITableView en viewWillAppear de mi UITableViewController como se muestra a continuación.
El tamaño del espacio vertical parece coincidir con la altura del marco de la barra de navegación y el desplazamiento y. El problema solo ocurrió en iOS 7.
fuente
En Xamarin iOS, tuve este problema en un UITableViewController en segundo plano justo después de que se descartara el cuadro de diálogo modal en primer plano. En el proceso de pasar al primer plano, UITableViewController tenía inserciones configuradas (en algún lugar por iOS):
Esta clase lo resolvió
fuente
De vez en cuando vuelvo a esta terrible situación y me doy cuenta de que todavía es bastante desconocida. Entonces, para la memoria futura ...
Últimamente, me estoy arreglando con esta solución.
No me preguntes por qué, sigo pensando que hay un error en UIKit.
fuente
Si va al guión gráfico, puede cambiar el desplazamiento seleccionando la tabla y, en la sección Vista de tabla en el inspector de atributos, simplemente cambie las Inserciones del separador a la izquierda a 0.
fuente
Creo que la solución real es configurar sus restricciones superior e inferior en la vista de tabla para que sean iguales a topMargin y bottomMargin. No es la guía de diseño superior ni la guía de diseño inferior. Esto le permite mantener automáticamenteAdjustsScrollViewInsets como verdaderos.
fuente
Solución Swift 3:
fuente
Si se incrustó su TableViewController en un NavigationController o una ContainerView,
You have to constraint to margins instead of top Layout guide in Storyboard
.Check constraint to margins when you are doing the constraints
Ninguna otra forma funcionó para mí. No pude comentar, así que solo estoy reiterando la respuesta de Robert Chens.fuente
Probé varias de las respuestas. Cambiar la configuración en el guión gráfico provocó problemas de ondulación con un menú superpuesto que aparece desde la izquierda.
Solo tengo un UIViewController en blanco en el guión gráfico, de lo contrario, todo se genera mediante programación.
Tengo el mismo problema con un UITableView dentro de un UIView dentro de un UIViewController. Es decir, los encabezados de sección comienzan demasiado abajo cuando el UIViewController está incrustado en un controlador de navegación. Sin el controlador de navegación, todo funciona bien.
Para solucionar el problema, creé un UILabel y con restricciones coloqué la restricción inferior de UILabel = la restricción superior de UIView (por lo que no se muestra en la pantalla. Ahora, con ese control adicional (la nueva etiqueta), TableView se comporta correctamente.
fuente
Tuve el mismo problema en iOS 11 y xib, UITableviewController y lo resolví de la siguiente manera
fuente