Mon application ressemble à l'application de carnet d'adresses par défaut sur l'iPhone. Pour chaque alphabet, il y a un en-tête de section dans le carnet d'adresses (A, B ...) en couleur de fond dégradé gris. Est-il possible de remplacer cette couleur par défaut par une autre couleur?modifier la couleur d'arrière-plan d'un titre d'en-tête de section (tableview normale)
Répondre
Vous pouvez remplacer les en-têtes de section d'un UITableView en mettant en œuvre la méthode suivante dans le UITableViewDelegate:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
Vous voudrez probablement aussi de mettre en œuvre la méthode de la hauteur pour assurer correctement vos nouveaux écrans d'affichage de la section:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
pour changer la couleur de l'en-tête de section, créez un UIView avec un UIImageView en son sein, et un UILabel pour le t ext de la section. Ajoutez une image à UIImageView pour savoir à quoi vous voulez que l'arrière-plan ressemble. Autant que je le sache, vous ne pouvez pas manipuler la couleur de la vue en coupe.
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
// create the parent view that will hold header Label
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 25.0)];
// create the button object
UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero];
headerLabel.backgroundColor = [UIColor blackColor];
headerLabel.opaque = NO;
headerLabel.textColor = [UIColor whiteColor];
headerLabel.highlightedTextColor = [UIColor whiteColor];
headerLabel.font = [UIFont boldSystemFontOfSize:20];
headerLabel.frame = CGRectMake(0.0, 0.0, 320.0, 22.0);
// If you want to align the header text as centered
//headerLabel.frame = CGRectMake(150.0, 0.0, 300.0, 44.0);
headerLabel.text = @"Name of header";
[customView addSubview:headerLabel];
return customView;
}