¿Por qué hay relleno adicional en la parte superior de mi UITableView con el estilo UITableViewStyleGrouped en iOS7?

Resuelto esilver asked hace 54 años • 78 respuestas

A partir de iOS7, hay espacio adicional en la parte superior de mis UITableViewque tienen un estilo UITableViewStyleGrouped.

Aquí hay un ejemplo:

ingrese la descripción de la imagen aquí

La vista de tabla comienza en la primera flecha, hay 35 píxeles de relleno inexplicable, luego el encabezado verde es devuelto UIViewpor viewForHeaderInSection(donde la sección es 0).

¿Alguien puede explicar de dónde proviene esta cantidad de 35 píxeles y cómo puedo deshacerme de ella sin cambiar a UITableViewStylePlain?


Actualización (respuesta):

En iOS 11 y posteriores:

tableView.contentInsetAdjustmentBehavior = .never
esilver avatar Jan 01 '70 08:01 esilver
Aceptado

Me ayudó lo siguiente:

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

ingrese la descripción de la imagen aquí

Alexander avatar Oct 01 '2013 13:10 Alexander

Jugué un poco más con él y parece que esto es un efecto secundario de configurar tableView tableHeaderView = nil.

Debido a que mi tableView tiene una apariencia dinámica tableHeaderView, cuando necesito ocultarlo tableHeaderView, en lugar de hacerlo self.tableView.tableHeaderView = nil;, hago:

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

Me gusta más esta solución que establecer un algo arbitrario porque también contentInset.topla uso dinámicamente. contentInset.topTener que recordar eliminar 35 píxeles adicionales cada vez que vuelvo a calcular contentInset.topes tedioso.

Mr. T avatar Sep 21 '2013 23:09 Mr. T