versiones ventajas desventajas descargar ios

ios - ventajas - Por qué el espacio extra está en la parte superior de UITableView: simple



ios ventajas y desventajas (11)

¿Tal vez tienes más de un controlador de navegación principal? Si ese es el caso, desmarque "Mostrar barra de navegación" de otros controladores de navegación principales.

Estoy captando algo de programación de iOS y estoy tratando de poner un UITableView en un guión gráfico. Desafortunadamente, estoy tratando de poner el contenido en la parte superior de la vista pero está poniendo algo de espacio. He intentado ajustar los valores en el inspector para Ver -> Modo pero esto no parece tener ningún efecto.

He puesto el fondo verde y puse un color de borde para mostrar el problema. No soy un desarrollador de iOS sofisticado, así que asumo que esta es la solución más simple y no algo complejo. ¿Cómo puedo hacer que el contenido de la vista de tabla quede al ras con la parte superior? He visto esto ¿Por qué hay un relleno adicional en la parte superior de mi UITableView con el estilo UITableViewStyleGrouped en iOS7 pero no estoy seguro de si está relacionado?

gracias por cualquier ayuda

Editar # 1

Actualizado con cambios y captura de pantalla de propiedades para esta vista de tabla


Así es como se puede arreglar fácilmente a través de Storyboard:

Seleccione Vista de tabla> Inspector de tamaño> Plantillas de contenido: Nunca


Causa de este problema: -

  1. a UITableView no le gusta tener un encabezado con una altura de 0.0. Si lo que intentas hacer es tener un encabezado con una altura de 0, puedes saltar a la solución.
  2. incluso si luego asignas una altura distinta a 0.0 a tu encabezado, a un UITableView no le gusta que se le asigne una cabecera con una altura de 0.0 al principio.

En ViewDidLoad: -

self.edgesForExtendedLayout = UIRectEdge.None self.automaticallyAdjustsScrollViewInsets = false

No hay necesidad de algo como esto: -

self.myTableview.contentInset = UIEdgeInsetsMake(-56, 0, 0, 0)

En el delegado de heightForHeaderInSection : -

if section == 0 { return 1 } else { return 40; // your other headers height value }

En el delegado de viewForHeaderInSection :

if section == 0 { // Note CGFloat.min for swift // For Objective-c CGFLOAT_MIN let headerView = UIView.init(frame: CGRectMake(0.0, 0.0, self.myShaadiTableview.bounds.size.width, CGFloat.min)) return headerView } else { // Construct your other headers here }


En Swift, solo necesitas configurar la propiedad de abajo como falsa.

self.automaticallyAdjustsScrollViewInsets = false


Es muy fácil y funcionó perfectamente para mí. Seleccione un controlador en Story Board en el que haya colocado UITableView.

YouStoryboard.storyboard> YouViewController> Inspector de atributos> Desmarcar - Ajustar inserciones de vista de desplazamiento.

Asegúrese de seleccionar UIViewController no UITableView.


Todo el mundo sigue hablando de esta opción self.automaticallyAdjustsScrollViewInsets .
Sin embargo, esto no funcionó para mí en absoluto. Lo que sí me funcionó fue establecer la propiedad "Inserciones de contenido" en Never .

Un problema tan molesto.


Vaya al inspector de atributos del Controlador de vista seleccionando el xib o el controlador en Storyboard. Desmarque las inserciones Ajustar vista de desplazamiento en diseño . Va a resolver el problema


en Swift 3.0, espero que te ayude

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return CGFloat.leastNormalMagnitude } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return CGFloat.leastNormalMagnitude }


prueba esto....

self.tableView.contentInset = UIEdgeInsetsMake( 20, 20 , 0, 0)


Swift:

override func viewWillAppear(animated: Bool) { self.edgesForExtendedLayout = UIRectEdge.None OR self.moduleListTableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0); OR self.automaticallyAdjustsScrollViewInsets = false }


Sí, esa otra pregunta está muy relacionada. UITableViewStyleGrouped divide cada sección en un "grupo" insertando ese relleno adicional ... similar a lo que hizo antes de iOS7, pero claro en lugar de coloreado de forma predeterminada, y justo en la parte superior en lugar de hacerlo todo alrededor. Si no desea el relleno de forma predeterminada, utilice UITableViewStylePlain .

De lo contrario, si necesita mantener el estilo igual, haga lo que esta otra publicación de ese enlace recomienda y cambie la inserción de contenido:

self.tableView.contentInset = UIEdgeInsetsMake(-36, 0, 0, 0);

O haga lo que sugiere este póster y establezca la height tableHeaderView .-1 , es decir, casi 0 :

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 0.01f)];