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.

Frage

Kennt 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?

Beispiel
<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>
Screenshots

Lö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!

Hier ist ein Beispiel, wie ich dies erreicht habe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage