Eu estou querendo saber como alterar a cor do realce / seleção azul de a UITableViewCell
, alguma idéia?
ios
uitableview
Thomas Joos
fonte
fonte
selectedBackgroundView
simplesmente nunca aparecerá. Somente após definir "Seleção" como Padrão, aselectedBackgroundView
exibição será exibida. Testado em iOS 6 e 7.cell.selectedBackgroundView = [UIView new];
e você definir qualquer cor que você quiser:cell.selectedBackgroundView.backgroundColor = [UIColor colorWithHex:@"ecf2f5" andAlpha:1];
O Zonble já forneceu uma excelente resposta. Eu pensei que seria útil incluir um trecho de código curto para adicionar um
UIView
à célula de tableview que será apresentada como a exibição de plano de fundo selecionada.UITableViewCell
selectedBackgroundView
como aUIView
que eu criei com a cor de fundo escolhidaIsto funcionou bem para mim. Obrigado pela dica Zonble.
fonte
UITableViewCell
possui três estilos de seleção padrão: -A implementação é a seguinte: -
fonte
No Swift, use isso em
cellForRowAtIndexPath
Se você quer sua cor de seleção ser o mesmo em todos os
UITableViewCell
, usar isso emAppDelegate
.fonte
Se você quiser alterá-lo para todo o aplicativo, adicione a lógica ao seu Delegado de Aplicativo
fonte
para completar: se você criou sua própria subclasse,
UITableViewCell
pode implementar o- (void)setSelected:(BOOL)selected animated:(BOOL)animated
método e definir a cor de segundo plano de alguma visualização que você adicionou na visualização de conteúdo. (se for esse o caso) ou do próprio contentView (se não for coberto por uma de suas próprias visualizações).(não usou? para ajustar-se à pequena largura dos DIVs do código-fonte :)
essa abordagem tem duas vantagens em relação ao uso do selectedBackgroundView, usa menos memória e um pouco menos de CPU, não que você notaria a menos que exibisse centenas de células.
fonte
selectedBackgroundView
addself. selectedBackgroundView = [UIView new];
selectedBackgroundView
propriedade.Preciso definir o estilo de seleção para que
UITableViewCellSelectionStyleDefault
a cor de plano de fundo personalizada funcione. Se houver outro estilo, a cor de plano de fundo personalizada será ignorada. Testado no iOS 8.O código completo da célula da seguinte maneira:
fonte
Com base na resposta do usuário @ , você pode adicionar esta extensão em qualquer lugar no código do seu aplicativo e ter a cor da sua seleção diretamente no editor de storyboard para todas as células do seu aplicativo:
fonte
No seu storyboard, defina a classe do seu UITableViewCell como UIDesignableTableViewCell, no inspetor Atributos, você pode alterar a cor selecionada da sua célula para qualquer cor.
Você pode usar isso para todas as suas células. É assim que o inspetor de atributos será exibido.
fonte
UIColor.clear
, nãoUIColor.clearColor()
. Não tenho certeza se isso também é uma mudança no Swift, mas também funciona sem ele@IBDesignable
.Swift 3.0 / 4.0
Se você criou sua própria célula personalizada, é possível alterar a cor da seleção
awakeFromNib()
para todas as células:fonte
1- Adicione uma visualização à visualização de conteúdo do seu celular.
2- Clique com o botão direito do mouse no seu celular.
3- Crie a visualização adicionada como "selectedBackgroundView"
fonte