Je sais comment modifier la hauteur des en-têtes de section dans la vue tableau. Mais je ne trouve aucune solution pour modifier l'espacement par défaut avant la première section.
En ce moment, j'ai ce code:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0){
return 0;
}
return 10;
}
ios
uikit
tableview
uitableview
circuitlego
la source
la source
Réponses:
Retournez
CGFLOAT_MIN
au lieu de 0 pour la hauteur de section souhaitée.Swift 3:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { if section == 0 { return CGFloat.leastNormalMagnitude } return tableView.sectionHeaderHeight }
Rapide:
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { if section == 0 { return CGFloat.min } return tableView.sectionHeaderHeight }
Obj-C:
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) return CGFLOAT_MIN; return tableView.sectionHeaderHeight; }
la source
CGFloat.leastNormalMagnitude
estimatedHeightForHeaderInSection
, l'application plantera.Si vous utilisez le
tableView
style groupé ,tableView
définissez automatiquement les incrustations supérieures et inférieures. Pour les éviter et éviter les paramètres internes d'inserts, utilisez des méthodes de délégation pour l'en-tête et le pied de page. Ne retournez jamais 0.0 maisCGFLOAT_MIN
.Objectif c
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { // Removes extra padding in Grouped style return CGFLOAT_MIN; } - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { // Removes extra padding in Grouped style return CGFLOAT_MIN; }
Rapide
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { // Removes extra padding in Grouped style return CGFloat.leastNormalMagnitude } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { // Removes extra padding in Grouped style return CGFloat.leastNormalMagnitude }
la source
viewForHeaderInSection
que l'en-tête disparaisse complètement.Il semble que je ne puisse pas définir une vue d'en-tête de tableau avec une hauteur de 0. J'ai fini par faire ce qui suit:
- (void)viewWillAppear:(BOOL)animated{ CGRect frame = self.tableView.tableHeaderView.frame; frame.size.height = 1; UIView *headerView = [[UIView alloc] initWithFrame:frame]; [self.tableView setTableHeaderView:headerView]; }
la source
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 1.0f; }
Cela a fonctionné pour moi avec Swift 4 . Modifiez votre
UITableView
par exemple dansviewDidLoad
:// Remove space between sections. tableView.sectionHeaderHeight = 0 tableView.sectionFooterHeight = 0 // Remove space at top and bottom of tableView. tableView.tableHeaderView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: CGFloat.leastNormalMagnitude))) tableView.tableFooterView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: CGFloat.leastNormalMagnitude)))
la source
Vous pouvez essayer ceci:
dans le
loadView
_tableView.sectionHeaderHeight = 0;
ensuite
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 0; }
Il doit être supprimé tant que vous n'avez aucun objet dans l'en-tête ...
Et si vous voulez une certaine taille de l'en-tête de section, ne modifiez que la valeur de retour.
même si vous ne supprimez pas le sectionfooter.
_tableView.sectionFooterHeight = 0;
et
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return 0; }
Eh bien, cela fonctionne pour mes problèmes avec la tableview dans iOS7.
la source
Vous devez supprimer le code
self.tableView.tableHeaderView = [UIView new];
après avoir ajouté- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ return CGFLOAT_MIN; }
la source
footer
hauteur qui pose problème dans mon cas. Merci pour l'aide.vous pouvez utiliser
viewForHeaderInSection
et renvoyer une vue de n'importe quelle hauteur.- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { int height = 30 //you can change the height if(section==0) { UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, height)]; return view; } }
la source
Dans Swift 2.0
func tableView(tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat { return yourHeight }
la source
Dans Swift 4
Supprimez le rembourrage supérieur supplémentaire dans la vue de table groupée.
Ici, la hauteur est donnée à 1 comme hauteur minimale pour l'en-tête de la section car vous ne pouvez pas donner 0 car tableview prendra la marge supérieure par défaut si une hauteur nulle est attribuée.
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 1 } func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { return UIView() }
la source
Exemple de viewForHeaderInSection:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 118)]; view.backgroundColor = COLOR_DEFAULT; NSString* key = [self.tableKeys objectAtIndex:section]; NSArray *result = (NSArray*)[self.filteredTableData objectForKey:key]; SZTicketsResult *ticketResult = [result objectAtIndex:0]; UIView *smallColoredView = [[UIView alloc] initWithFrame:CGRectMake(0, 5, 320, 3)]; smallColoredView.backgroundColor = COLOR_DEFAULT_KOSTKY; [view addSubview:smallColoredView]; UIView *topBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 8, 320, 40)]; topBackgroundView.backgroundColor = [UIColor colorWithRed:255.0/255.0 green:248.0/255.0 blue:174.0/255.0 alpha:1]; [view addSubview:topBackgroundView]; UILabel *totalWinnings = [[UILabel alloc] initWithFrame:CGRectMake(10, 8, 300, 40)]; totalWinnings.text = ticketResult.message; totalWinnings.minimumFontSize = 10.0f; totalWinnings.numberOfLines = 0; totalWinnings.backgroundColor = [UIColor clearColor]; totalWinnings.font = [UIFont boldSystemFontOfSize:15.0f]; [view addSubview:totalWinnings]; UIView *bottomBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 55, 320, 58)]; bottomBackgroundView.backgroundColor = [UIColor colorWithRed:255.0/255.0 green:248.0/255.0 blue:174.0/255.0 alpha:1]; [view addSubview:bottomBackgroundView]; UILabel *numberOfDraw = [[UILabel alloc] initWithFrame:CGRectMake(10, 55, 290, 58)]; numberOfDraw.text = [NSString stringWithFormat:@"sometext %@",[ticketResult.title lowercaseString]];; numberOfDraw.minimumFontSize = 10.0f; numberOfDraw.numberOfLines = 0; numberOfDraw.backgroundColor = [UIColor clearColor]; numberOfDraw.font = [UIFont boldSystemFontOfSize:15.0f]; [view addSubview:numberOfDraw]; return view;
la source