Como posso alterar a cor de um cabeçalho de seção no UITableView?
EDIT : A resposta fornecida pelo DJ-S deve ser considerada para o iOS 6 e superior. A resposta aceita está desatualizada.
ios
uitableview
cocoa-touch
Ilya Suzdalnitski
fonte
fonte
Respostas:
Esperamos que este método do
UITableViewDelegate
protocolo o inicie:Objetivo-C:
Rápido:
Atualizado 2017:
Swift 3:
Substitua
[UIColor redColor]
pelo queUIColor
você desejar. Você também pode querer ajustar as dimensões deheaderView
.fonte
[UIColor xxxColor]
no entanto, quando tento uma cor personalizada como que eu posso começar a partir de photoshop (isso usando oUIColor red:green:blue:alpha:
, é apenas branco Estou fazendo algo errado.?Esta é uma pergunta antiga, mas acho que a resposta precisa ser atualizada.
Este método não envolve a definição e a criação de sua própria visualização personalizada. No iOS 6 e superior, você pode alterar facilmente a cor do plano de fundo e a cor do texto, definindo o
método delegado de seção
Por exemplo:
Retirado do meu post aqui: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/
Swift 3/4
fonte
header.contentView.backgroundColor = [UIColor blackColor];
opção fornecerá um cabeçalho opaco #Veja como alterar a cor do texto.
fonte
Você pode fazer isso se desejar um cabeçalho com cor personalizada:
Esta solução funciona muito bem desde o iOS 6.0.
fonte
A solução a seguir funciona no Swift 1.2 com iOS 8 ou superior
fonte
A configuração da cor de plano de fundo no UITableViewHeaderFooterView foi preterida. Por favor, use em seu
contentView.backgroundColor
lugar.fonte
Não se esqueça de adicionar esse código ao delegado ou, em alguns casos, sua visualização será cortada ou, por vezes, exibida atrás da tabela, em relação à altura da visualização / etiqueta.
fonte
Você pode fazer isso no main.storyboard em cerca de 2 segundos.
fonte
Se você não deseja criar uma visualização personalizada, também pode alterar a cor desta forma (requer iOS 6):
fonte
Defina a cor do plano de fundo e do texto da área de seção: (Agradecimentos a
William Jockusch
eDj S
)fonte
Swift 4
Para alterar a cor do plano de fundo , a cor do rótulo de texto e a fonte da Visualização do cabeçalho de uma seção UITableView, substitua simplesmente
willDisplayHeaderView
a visualização da tabela da seguinte maneira:Isso funcionou perfeitamente para mim; espero que ajude você também!
fonte
Veja como adicionar uma imagem na exibição de cabeçalho:
fonte
Para iOS8 (Beta) e Swift, escolha a cor RGB desejada e tente o seguinte:
}
(A "substituição" existe desde que eu estou usando o UITableViewController em vez de um UIViewController normal no meu projeto, mas não é obrigatório alterar a cor do cabeçalho da seção)
O texto do seu cabeçalho ainda será visto. Observe que você precisará ajustar a altura do cabeçalho da seção.
Boa sorte.
fonte
SWIFT 2
Consegui alterar com êxito a cor de fundo da seção com um efeito de desfoque adicional (o que é muito legal). Para alterar facilmente a cor de fundo da seção:
Em seguida, para efeito de desfoque, adicione ao código:
fonte
Eu sei que é respondido, apenas no caso, In Swift use o seguinte
fonte
iOS 8 ou superior
fonte
Com base na resposta do @Dj S, usando o Swift 3. Isso funciona muito bem no iOS 10.
fonte
Eu tenho um projeto usando células de exibição de tabela estática, no iOS 7.x. O willDisplayHeaderView não é acionado. No entanto, este método funciona bem:
fonte
fonte
Eu acho que esse código não é tão ruim.
fonte
Swift 4 facilita muito. Basta adicionar isso à sua turma e definir a cor conforme necessário.
ou se uma cor simples
Atualizado para o Swift 5
ou se uma cor simples
fonte
No iOS 7.0.4, criei um cabeçalho personalizado com seu próprio XIB. Nada mencionado aqui antes funcionou. Tinha que ser a subclasse do UITableViewHeaderFooterView para trabalhar com o
dequeueReusableHeaderFooterViewWithIdentifier:
e parece que a classe é muito teimosa em relação à cor do plano de fundo. Então, finalmente, adicionei um UIView (você pode fazê-lo com código ou IB) com o nome customBackgroudView e, em seguida, defina sua propriedade backgroundColor. Em layoutSubviews: defino os limites dessa exibição como limites. Ele funciona com o iOS 7 e não oferece falhas.fonte
Apenas mude a cor da camada da vista do cabeçalho
fonte
Se alguém precisar de agilidade, mantenha o título:
fonte
Recebi uma mensagem do Xcode através do log do console
Depois, apenas crio um novo UIView e o coloco como plano de fundo do HeaderView. Não é uma boa solução, mas fácil como o Xcode disse.
fonte
No meu caso, funcionou assim:
fonte
Basta definir a cor do plano de fundo da vista de plano de fundo:
fonte
Com o RubyMotion / RedPotion, cole-o no seu TableScreen:
Funciona como um encanto!
fonte
Para rápido 5 +
No
willDisplayHeaderView
métodoEspero que isso ajude você :]
fonte
Embora
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
funcione bem, você pode conseguir isso sem implementar outro método delegado. no seufunc tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
método, você pode usar emview.contentView.backgroundColor = UIColor.white
vez doview.backgroundView?.backgroundColor = UIColor.white
que não está funcionando. (Eu sei quebackgroundView
é opcional, mas mesmo quando existe, isso não é possível sem a implementaçãowillDisplayHeaderView
fonte