Klare Antwort zum Maskieren einer UIView als UITableViewCell selectedBackgroundView
Ich habe einige Antworten auf StackOverflow gelesen und ausprobiert. Ich habe auch ein paar Dinge aus Blogs gelesen und ausprobiert, aber nichts scheint das zu erreichen, wonach ich suche.
Ich erstelle eineUIView
und stelle seine Hintergrundfarbe auf meine gewünschte einUITableViewCell
Auswahlfarbe(anstelle der Standardfarben Blau oder Grau). Ich füge das hinzuUIView
zu meiner ZelleselectedBackgroundView
und dies funktioniert gut, meine Zelle ändert sich in der gewünschten Farbe bei der Benutzerauswahl.
Diese Methode eignet sich hervorragend für PlainUITableViews
; nicht so gut auf gruppiert. Auf einer GruppeUITableView
, Die erste und letzte Zelle entsprechen nicht den in den folgenden Screenshots gezeigten Begrenzungen für Clips / Masken.
Ich weiß, dass es keine Möglichkeit gibt, nur die oberen linken und rechten Ecken zu runden.
Ich möchte dies ausschließlich per Code ohne Bilder tun.
FrageKennt jemand eine nette kleine Arbeit um das zu ändernselectedBackgroundView
Farbe von aUITableViewCell
nur mit demUIView
und nicht Bilder UND, um die erste und letzte Zelle an die abgerundeten Ecken anzupassen?
<code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString * CellIdentifier = @"Cell"; WCSBadgedCell * cell = [[WCSBadgedCell alloc] initWithStyle:UITableViewCellStyleSubtitle andBadgeStyle:0 reuseIdentifier:CellIdentifier]; if (cell == nil) { cell = [[WCSBadgedCell alloc] initWithStyle:UITableViewCellStyleDefault andBadgeStyle:0 reuseIdentifier:CellIdentifier]; } UIView *bgColorView = [[UIView alloc] init]; [bgColorView setBackgroundColor:DARKBROWN]; [bgColorView setClipsToBounds: YES]; [cell.layer setMasksToBounds:YES]; [cell setSelectedBackgroundView:bgColorView]; [cell.textLabel setText: @"Testing a Cell"]; return cell; } </code>ScreenshotsLösung
Ich akzeptiereAntwort von CodaFis weil er einen Kommentar hinzugefügt hat, der auf ein ziemlich nettes deutete(noch lange) Lösung. Ich musste einiges überarbeiten, aber am Ende habe ich jetzt die ausgewähltenBackgroundView's, die ich brauchte, um die Ecken der ersten und letzten Zelle herum. Nochmals vielen Dank!