Existe-t-il un moyen de réduire l'espace entre deux sections d'un UITableView? Il y a environ 15 pixels entre chaque section que j'ai. J'ai déjà essayé de renvoyer 0 pour -tableView:heightForFooterInSection:
et -tableView:heightForHeaderInSection:
mais cela ne change rien.
Aucune suggestion?
C'était un peu délicat, mais essayez ce code:
- (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];
}
Changez les valeurs en conséquence. Pour supprimer cet espace, je pense que 0.0 ne sera pas accepté. La plus petite valeur raisonnable semble être 1.0.
Pour tous ceux qui veulent réduire la distance à 0, vous devez utiliser:
tableView.sectionHeaderHeight = 0.0;
tableView.sectionFooterHeight = 0.0;
Parce que la desserte de UITableViewDelegate crée uniquement un effet à partir de flottants supérieurs à zéro.
-(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];
}
(utilisant iOS 4.1 avec XCode 4.0.2)
Vous pouvez en réalité définir les hauteurs de pied de page, d'en-tête et de cellule dans Interface Builder sous l'onglet Taille. Par défaut, l'en-tête/le pied de page est défini sur 10.0.
Vous devez réduire la hauteur de l'en-tête et du pied de section. Ensuite, l'espace entre les sections sera réduit.
essayez ce code
Ça marche pour moi :-)
tableView.sectionHeaderHeight = 2.0;
tableView.sectionFooterHeight = 2.0;
Vous pouvez également réduire la hauteur du pied de section et de l'en-tête du storyboard. Dans la vue de table -> inspecteur de taille. Aller à la hauteur de la section.
Par défaut, il est défini sur 22 pour une table de style brut et sur 10 pour une table de style groupée. Vous pouvez configurer des valeurs en augmentant/diminuant les valeurs pour l'en-tête et le pied de page séparément.
Pour moi, le problème était dû au fait que j'utilisais un style de vue de table groupée (UITableViewStyleGrouped
). Quand je l'ai changé en style simple (UITableViewStylePlain
), ma méthode tableView:heightForHeaderInSection:
était la seule chose qui déterminait la taille de chaque en-tête de section.
MISE À JOUR POUR iOS7: / En raison de la mise à jour automatique d'ARC, voici le code @Martin Stolz modifié.
-(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)];
}
(Utiliser iOS7, Xcode v5.0)
Utilisez ceci peut-être, 0 ne fonctionnera pas comme prévu
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return .leastNormalMagnitude
}
Pour moi, ce problème a été résolu en utilisant simplement le code suivant,
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return section == 0 ? 1 : 20 // 20 is my other sections height
}
Retourner 1 pour la première section a résolu le problème.