147 votes

Personnaliser UITableView section d'en-tête

Je veux personnaliser UITableView - tête de chaque section. Jusqu'à présent, j'ai mis en place

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

cette UITabelViewDelegate méthode. Ce que je veux faire est d'obtenir courant de l'en-tête de chaque section et juste ajouter UILabel comme une sous-vue.

Jusqu'à présent, je ne suis pas en mesure de le faire. Parce que, je ne pouvais pas trouver n'importe quoi pour obtenir par défaut de l'en-tête de section. Première question,est-il possible de l'obtenir par défaut de l'en-tête de section ?

Si il n'est pas possible, j'ai besoin de créer un conteneur de vue sur qui est un UIView ,mais, cette fois j'ai besoin pour définir la couleur de fond par défaut,la couleur de l'ombre etc. Parce que, si vous regardez attentivement dans la section d'en-tête, c'est déjà personnalisé.

Comment puis-je obtenir ces valeurs par défaut pour chaque en-tête de section ?

Merci à vous tous.

292voto

Lochana Ragupathy Points 1568

Vous pouvez essayer ceci:

 -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 18)];
    /* Create custom view to display section header... */
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 5, tableView.frame.size.width, 18)];
    [label setFont:[UIFont boldSystemFontOfSize:12]];
     NSString *string =[list objectAtIndex:section];
    /* Section header is in 0th index... */
    [label setText:string];
    [view addSubview:label];
    [view setBackgroundColor:[UIColor colorWithRed:166/255.0 green:177/255.0 blue:186/255.0 alpha:1.0]]; //your background color...
    return view;
}

17voto

Mert Points 2421

Si vous utilisez par défaut de l'en-tête de la vue, vous ne pouvez changer le texte sur elle avec

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

Si vous souhaitez personnaliser l'affichage, vous devez en créer un nouveau de votre auto.

10voto

user836773 Points 61

pourquoi ne pas utiliser UITableViewHeaderFooterView?

2voto

cpprulez Points 538

Si j'étais vous, je ferais une méthode qui renvoie une UIView donné un NSString à contenir. Par exemple

+ (UIView *) sectionViewWithTitle:(NSString *)title;

Dans la mise en œuvre de cette méthode de créer une UIView, ajouter un UILabel avec les propriétés que vous souhaitez définir, et bien sûr de définir son titre à la donné un.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X