Les en-têtes de section de UITableView sont moins identifiables dans iOS 7. Existe-t-il un moyen de définir la couleur de l'en-tête de la section UITableView dans iOS 7 plutôt que de créer un nouveau UIView?.
Note: J'ai trouvé des solutions en créant une nouvelle UIView dans,
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
mais je voulais vraiment garder les propriétés de la pomme sauf la couleur. Existe-t-il un moyen de le faire sans cette méthode?.
Implémentez tableView:willDisplayHeaderView:forSection:
et mettez à jour la vue qui vous a été transmise.
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
UITableViewHeaderFooterView *v = (UITableViewHeaderFooterView *)view;
v.backgroundView.backgroundColor = [UIColor darkGrayColor];
}
(en supposant que vous ayez fourni une instance UITableViewHeaderFooterView
dans votre implémentation pour tableView:viewForHeaderInSection:
)
Dans le cas de Swift 3, le moyen consiste à le réaliser via la méthode UITableViewDelegate:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.backgroundColor = UIColor.gray
}
}
Avec cette méthode, vous pouvez définir la taille de la police, le style de police et l’arrière-plan de l’en-tête aussi.
Il y a 2 méthodes pour cela:
Première méthode
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
header.backgroundView.backgroundColor = [UIColor darkGrayColor];
header.textLabel.font=[UIFont fontWithName:@"Open Sans-Regular" size:12];
[header.textLabel setTextColor:[UIColor whiteColor]];
}
Deuxième méthode
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 30)];
// myLabel.frame = CGRectMake(20, 8, 320, 20);
myLabel.font = [UIFont fontWithName:@"Open Sans-Regular" size:12];
myLabel.text = [NSString stringWithFormat:@" %@",[self tableView:FilterSearchTable titleForHeaderInSection:section]];
myLabel.backgroundColor=[UIColor blueColor];
myLabel.textColor=[UIColor whiteColor];
UIView *headerView = [[UIView alloc] init];
[headerView addSubview:myLabel];
return headerView;
}