J'ai essayé d'implémenter le pour obtenir l'étiquette de texte de l'en-tête en coupe de couleur noire au lieu de la couleur blanche, mais il a l'air si différent de la valeur par défaut créée par le SDK, le mien est si moche. P> Comment recréer l'UIView avec exactement la même chose que celle du SDK? P> de la documentation Apple: P>
la vue de table utilise un style de police fixe pour les titres d'en-tête de section. Si vous souhaitez un style de police différent, renvoyez une vue personnalisée (par exemple, un objet Uilabel) dans la méthode de déléguée TableView: ViewForheaderInsection: à la place. Em> p> p> P>
4 Réponses :
Vous pouvez essayer de les imiter à l'aide de Je l'ai fait en noir par exemple en utilisant le code comme suit: p> < PRE> XXX PRE> En jouant avec les couleurs et les combinaisons d'ombre, vous pouvez imiter assez bien l'étiquette. p> p> ShadowColor code> et shadowoffset code>.
Salut Rick, que diriez-vous de l'arrière-plan? Quelle couleur dois-je utiliser?
Est-ce que vous le mettez dans une vue de table groupée? Si oui, vous devriez avoir une couleur de fond de [Uicolor ClearColor];
Non, Rick, ce n'est pas ce que je veux. Depuis la discussion de la documentation Apple comme indiqué dans la question, je souhaite recréer la vue personnalisée identique à celle des titres d'en-tête de section par défaut de pomme avec la couleur de texte en noir, au lieu de la couleur blanche par défaut. Le problème est que l'arrière-plan par défaut est si spécial, je ne sais pas quelle couleur est-ce, et il semble que c'est une gradient.
Alors parlez-vous des en-têtes de section dans une vue de table groupée ou simple. Cela fait une grande différence, alors je vous demande si c'est dans une vue de table groupée.
Non, c'est la vue de table simple, non groupée, désolé, j'ai raté cette information.
Bien que cela ne soit pas parfaitement correct, je pose cela dans l'espoir que quelqu'un puisse améliorer mon approche. Le texte est correct (blanc comme défaut, mais vous pouvez changer cela). Le gradient et l'opacité des antécédents ne sont pas parfaits (trop léger ??) - Certains peaufinants peuvent être nécessaires.
Obtenez la secondeheaderbackground.png ici: http://img5.imageshack.us/img5/6616/sectionheaderbackground.png p>
Merci pour votre réponse! Je vais essayer de vous faire savoir. L'astuce ici est d'utiliser l'image existante comme couleur d'arrière-plan :) Je pensais qu'ils utilisent une couleur avec nom: P
Comme Davidd répondit ci-dessous, renvoie nil code> donne la meilleure apparence native.
Bien sûr, Retour Nil donne la meilleure apparence native, mais cela ne vous permet pas de personnaliser quoi que ce soit, telle que la couleur du texte, quelle est la question de la question.
Vous pouvez obtenir les en-têtes de section Uitables par défaut en implémentant les méthodes suivantes dans votre classe TableView: Ceci pourrait être particulièrement utile si vous utilisez un UisearchDisplayController dans votre application, où vous voulez le Résultats de la recherche à afficher dans un simple Uitailviewstyleplain CODE> Mode au lieu de, disons, le UitailviewstyleGroupage code> de votre personnalisée principale tableView. Vous pouvez ensuite implémenter quelque chose comme ceci: p>
Cela n'aide pas l'OP changer la couleur du texte
C'est la réponse la plus pertinente! Si vous souhaitez revenir avec l'en-tête de section à la recherche par défaut, retournez simplement NIL. Merci pour le conseil!
Si vous voulez - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 44;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 44)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 11, tableView.frame.size.width-100, 21)];
label.text = @"Text";
label.textColor = [UIColor colorWithRed:76.0/255 green:86.0/255 blue:108.0/255 alpha:1];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont fontWithName:@"Helvetica-Bold" size:17.0];
[view addSubview:label];
return view;
}