2016-10-19 2 views
2

Ich habe eine UITableView erstellt und habe ein Problem mit dem Separator. I angepasst, so dass es grau und ohne Einsatz erscheint:UITableView-Separatorfarbe ändert sich, wenn die Zelle ausgewählt wurde

self.tableView.separatorInset = .zero 
self.tableView.separatorColor = AppColors.separatorColor 

I auch mit einem Bild versucht:

self.tableView.separatorInset = .zero 
tableView.separatorStyle = UITableViewCellSeparatorStyle.singleLine 
tableView.separatorColor = UIColor(patternImage: #imageLiteral(resourceName: "thin_divider")) 

Problem: Wenn eine Zeile ausgewählt wird, wird der Separator weiß. Ich spielte mit didSelectRowAt, didDeselectRowAt und didHighlightRowAt aber nichts zu tun, bleibt es weiß, wenn die Zelle ausgewählt ist. Siehe das Beispiel unten (letzte Zelle wird auf dieses Beispiel gewählt) ...

example of the problem

+1

Sind Sie sicher, dass es das Trennzeichen ist und nicht nur eine Lücke von 1 Pixel zwischen der Tabellenansicht und der nächsten Ansicht? Denn auf Ihrem Bild zeigt es nur nach der letzten Zelle, nicht nach jeder einzelnen. – smeshko

+0

@smeshko Ja sicher, denn auf dem Bild habe ich die letzte Zelle ausgewählt, aber wenn ich eine andere Zelle, wird das Trennzeichen auch weiß –

+0

@Mrunal yep danke, es löst das Problem, aber keine Hervorhebung der Zelle, wenn es ist gedrückt –

Antwort

1

Versuchen Sie, diese Codezeile in cellForRowAtIndexPath Methode

[cell setSelectionStyle: UITableViewCellSelectionStyleNone]; 

Dies keine als Selektions Stil gesetzt wird (Standardwert für diese Eigenschaft ist UITableViewCellSelectionStyleBlue).

Für Zell Highlight Teil verwenden Code unten in didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    [cell setHighlighted: NO]; 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

Hoffnung, das hilft.

Verwandte Themen