iphone - source - uitableviewcell swift 3
Reduciendo el espacio entre las secciones de UITableView (8)
¿Hay alguna manera de reducir el espacio entre dos secciones de una UITableView? Hay aproximadamente 15 píxeles entre cada sección que tengo. Ya intenté devolver 0 para -tableView:heightForFooterInSection:
y -tableView:heightForHeaderInSection:
pero eso no cambia nada.
¿Alguna sugerencia?
Debe reducir la altura del encabezado / pie de página de la sección. Entonces el espacio entre las secciones se reducirá.
prueba este código
Esto funciona para mi :-)
tableView.sectionHeaderHeight = 2.0;
tableView.sectionFooterHeight = 2.0;
En realidad, puede establecer las alturas del pie de página / encabezado / celda en Interface Builder en la pestaña de tamaño. Por defecto, el encabezado / pie de página se establece en 10.0.
Fue un poco complicado, pero prueba este código:
- (CGFloat)tableView:(UITableView*)tableView
heightForHeaderInSection:(NSInteger)section {
if (section == 0) {
return 6.0;
}
return 1.0;
}
- (CGFloat)tableView:(UITableView*)tableView
heightForFooterInSection:(NSInteger)section {
return 5.0;
}
- (UIView*)tableView:(UITableView*)tableView
viewForHeaderInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
- (UIView*)tableView:(UITableView*)tableView
viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
Cambie los valores en consecuencia. Para eliminar el espacio, creo que 0.0 no será aceptado. El valor de cordura más pequeño parece ser 1.0.
Para mí, el problema era porque estaba usando un estilo de vista de tabla agrupada ( UITableViewStyleGrouped
). Cuando lo cambié a un estilo simple ( UITableViewStylePlain
) mi tableView:heightForHeaderInSection:
era lo único que determinaba el tamaño de cada encabezado de sección.
Para mí, este problema se resolvió simplemente usando el siguiente código:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return section == 0 ? 1 : 20 // 20 is my other sections height
}
Devolver 1 para la primera sección ha resuelto el problema.
Para todos los que quieran reducir la distancia a 0, deben usar:
tableView.sectionHeaderHeight = 0.0;
tableView.sectionFooterHeight = 0.0;
Debido a que el servicio de UITableViewDelegate solo tiene un efecto a partir de flotantes mayores que cero.
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{
return 1.0;
}
-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
{
return 1.0;
}
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
}
-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
return [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
}
(usando iOS 4.1 con XCode 4.0.2)
También puede reducir la altura del pie de página y el encabezado de la sección del guión gráfico. En la tabla vista -> tamaño inspector. Vaya a la Altura de la sección.
Por defecto, se establece en 22 para la tabla de estilo simple y 10 para la tabla de estilos agrupados. Puede configurar valores aumentando / disminuyendo los valores para encabezado y pie de página por separado.
ACTUALIZACIÓN PARA iOS7: debido a la actualización automática de ARC, aquí está editado el código de @Martin Stolz.
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == 0)
return 6;
return 1.0;
}
-(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
{
return 5.0;
}
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}
-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
}
(Usando iOS7, Xcode v5.0)