Estoy construyendo mi pantalla de configuración y uso de un agrupados vista de tabla.
Al intentar establecer los encabezados veo espaciado encima de mi encabezado de la vista.
He vuelto a revisar y me hacen pasar el punto de vista correcto de la altura en -(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section.

Aquí está una captura de pantalla de este comportamiento:
Encabezado vistas altura para agrupar UITableView en iOS7

Usted puede ver mi punto de vista con el título (VIBRACIÓN, MODO SILENCIOSO) en ella y es más oscuro color de fondo y el brillo de espacio por encima de ella.

  • Así que ¿cuál es tu pregunta? Y esto es todavía NDA, usted debe preguntar en los foros de desarrolladores.
  • Cómo deshacerse de el espacio por encima de mi encabezado de la vista.
InformationsquelleAutor Gal | 2013-08-04

6 Comentarios

  1. 73

    Después de mucho buscar, por fin he encontrado una solución para esto. El formato tableview el delegado de necesidades para implementar heightForFooterInSection y devolver un número muy pequeño. Devuelve 0 por defecto el mismo espaciado que fue el causante de espacios adicionales.

    -(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
        return CGFLOAT_MIN;
    }
    
    • Esto funciona, pero prefiero volver CGFLOAT_MIN
    • Sí, el comportamiento es bastante incoherente. Todos los valores de retorno de la altura correcta, pero 0, que devuelve una altura predeterminada. Esto no está documentado y el comportamiento parece ser incoherente. Abrí un radar para esto.
    • Gracias por eso! Por favor, mantenga nos informa de la promoción.
    • Gracias. CGFLOAT_MIN es probablemente una mejor valor de retorno. He actualizado mi respuesta.
    • Gracias, a mí me funciona. Devuelve 0 no se detiene comportamiento por defecto de UITableView que hace que el pie de página.
    • Para cualquier persona que está tratando de Swift, CGFLOAT_MIN no está disponible, el compilador bien decirle que use CGFloat.min

  2. 5

    Intente esto:

    - (void)viewWillAppear:(BOOL)animated{
        CGRect frame = self.tableView.tableHeaderView.frame;
        frame.size.height = 1;
        UIView *headerView = [[UIView alloc] initWithFrame:frame];
        [self.tableView setTableHeaderView:headerView];
    }
    
    • Gracias por la respuesta. Creo que esto afectará a la tabla encabezado de la parte superior y sólo estoy hablando de la sección de encabezado.
    • Esto es realmente una solución de fiar – El sistema no agregar espacio adicional a la primera sección de encabezado si un tableHeaderView existe. Personalmente prefiero este truco más de jugar con el pie de la altura.
  3. 4

    Este es prácticamente el mismo que el de Casey respuesta, sin embargo, es un poco más limpio, ya que no requieren la aplicación de un método de delegado. Cuando usted está configurando su vista de tabla, simplemente establezca la propiedad sectionFooterHeight a 0. Se realiza lo mismo con menos código (y no DBL_MIN rareza).

    tableView.sectionFooterHeight = 0.0;

  4. 1

    Bastante seguro de que es sólo un simple hack. Pero una manera fácil de hacerlo es escribir esta función:

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
    {
          return 48.0f; //header height
    }
    

    para personalizar su altura.

    Bastante seguro de que hay otras maneras de hacerlo, que yo no conozco.

    • gracias por responder. Ya se dispone de este método aplicado. Puedo devolver el encabezado correcto vista de la altura, pero aún así obtener el extra ~20 px espaciado anterior.
  5. 0

    Parece que Apple tomado la decisión de diseño para hacer que agrupan las vistas de tabla de tener más espacio en la parte superior. Trate de ajustar el contentInset de la UITableView. Ver mi respuesta aquí

  6. 0

    Swift 2.2 versión:

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

Dejar respuesta

Please enter your comment!
Please enter your name here