Comment puis-je changer la couleur d'un en-tête de section dans UITableView?
EDIT : La réponse fournie par DJ-S doit être prise en compte pour iOS 6 et supérieur. La réponse acceptée est obsolète.
ios
uitableview
cocoa-touch
Ilya Suzdalnitski
la source
la source
Réponses:
Espérons que cette méthode du
UITableViewDelegate
protocole vous aidera à démarrer:Objectif c:
Rapide:
Mise à jour 2017:
Swift 3:
Remplacez-le
[UIColor redColor]
par celui queUIColor
vous souhaitez. Vous pouvez également ajuster les dimensions deheaderView
.la source
[UIColor xxxColor]
cependant quand j'essaie une couleur personnalisée comme celles que je peux obtenir de Photoshop (donc en utilisant leUIColor red:green:blue:alpha:
, c'est juste du blanc. Suis-je en train de faire quelque chose de mal?C'est une vieille question, mais je pense que la réponse doit être mise à jour.
Cette méthode n'implique pas de définir et de créer votre propre vue personnalisée. Dans iOS 6 et versions ultérieures, vous pouvez facilement modifier la couleur d'arrière-plan et la couleur du texte en définissant
méthode déléguée de section
Par exemple:
Tiré de mon message ici: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/
Swift 3/4
la source
header.contentView.backgroundColor = [UIColor blackColor];
option vous donnera un en-tête opaqueVoici comment changer la couleur du texte.
la source
Vous pouvez le faire si vous souhaitez un en-tête avec une couleur personnalisée:
Cette solution fonctionne très bien depuis iOS 6.0.
la source
La solution suivante fonctionne pour Swift 1.2 avec iOS 8+
la source
La définition de la couleur d'arrière-plan sur UITableViewHeaderFooterView est obsolète. Veuillez utiliser à la
contentView.backgroundColor
place.la source
N'oubliez pas d'ajouter ce morceau de code du délégué ou votre vue sera coupée ou apparaîtra derrière la table dans certains cas, par rapport à la hauteur de votre vue / étiquette.
la source
Vous pouvez le faire sur main.storyboard en environ 2 secondes.
la source
Si vous ne souhaitez pas créer une vue personnalisée, vous pouvez également modifier la couleur comme ceci (nécessite iOS 6):
la source
Définissez l'arrière-plan et la couleur du texte de la section: (Merci à
William Jockusch
etDj S
)la source
Swift 4
Pour changer la couleur de fond , couleur de l' étiquette de texte et la police pour l' en- tête Vue d'une section UITableView, substituez simplement
willDisplayHeaderView
pour votre point de vue de la table comme ceci:Cela a parfaitement fonctionné pour moi; j'espère que cela vous aidera aussi!
la source
Voici comment ajouter une image dans la vue d'en-tête:
la source
Pour iOS8 (Beta) et Swift, choisissez la couleur RVB souhaitée et essayez ceci:
}
(Le "remplacement" est là puisque j'utilise le UITableViewController au lieu d'un UIViewController normal dans mon projet, mais ce n'est pas obligatoire pour changer la couleur de l'en-tête de section)
Le texte de votre en-tête sera toujours visible. Notez que vous devrez ajuster la hauteur de l'en-tête de section.
Bonne chance.
la source
SWIFT 2
J'ai réussi à changer la couleur d'arrière-plan de la section avec un effet de flou supplémentaire (ce qui est vraiment cool). Pour modifier facilement la couleur d'arrière-plan de la section:
Ensuite, pour un effet de flou, ajoutez au code:
la source
Je sais que sa réponse, juste au cas où, dans Swift utiliser ce qui suit
la source
iOS 8+
la source
Basé sur la réponse de @Dj S, en utilisant Swift 3. Cela fonctionne très bien sur iOS 10.
la source
J'ai un projet utilisant des cellules de vue tabulaire statique, dans iOS 7.x. willDisplayHeaderView ne se déclenche pas. Cependant, cette méthode fonctionne bien:
la source
la source
Je pense que ce code n'est pas si mal.
la source
Swift 4 le rend très facile. Ajoutez-le simplement à votre classe et définissez la couleur selon vos besoins.
ou si une couleur simple
Mis à jour pour Swift 5
ou si une couleur simple
la source
Dans iOS 7.0.4, j'ai créé un en-tête personnalisé avec son propre XIB. Rien de mentionné ici avant n'a fonctionné. Cela devait être la sous-classe de UITableViewHeaderFooterView pour fonctionner avec le
dequeueReusableHeaderFooterViewWithIdentifier:
et il semble que la classe soit très têtue en ce qui concerne la couleur d'arrière-plan. J'ai finalement ajouté une UIView (vous pouvez le faire avec du code ou IB) avec le nom customBackgroudView, puis définir sa propriété backgroundColor. Dans layoutSubviews: j'ai défini le cadre de cette vue sur des limites. Il fonctionne avec iOS 7 et ne donne aucun problème.la source
Il suffit de changer la couleur du calque de la vue d'en-tête
la source
Si quelqu'un a besoin de rapidité, conserve le titre:
la source
J'ai reçu un message de Xcode via le journal de la console
Ensuite, je crée simplement un nouvel UIView et le mets en arrière-plan de HeaderView. Ce n'est pas une bonne solution mais c'est aussi simple que le dit Xcode.
la source
Dans mon cas, cela a fonctionné comme ceci:
la source
Définissez simplement la couleur d'arrière-plan de la vue d'arrière-plan:
la source
Avec RubyMotion / RedPotion, collez-le dans votre TableScreen:
Fonctionne comme un charme!
la source
Pour swift 5 +
Dans la
willDisplayHeaderView
méthodeJ'espère que ceci vous aide :]
la source
Bien que
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
cela fonctionne également, vous pouvez y parvenir sans implémenter une autre méthode déléguée. dans votrefunc tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
méthode, vous pouvez utiliserview.contentView.backgroundColor = UIColor.white
au lieu de celuiview.backgroundView?.backgroundColor = UIColor.white
qui ne fonctionne pas. (Je sais quebackgroundView
c'est facultatif, mais même quand c'est là, ça ne se réveille pas sans implémenterwillDisplayHeaderView
la source