Überlappende UITableViewCell-Inhaltsansichten

Ich habe diese Tabelle, deren Zellen so aussehen:
Wie Sie sehen, soll der obere Rand jeder Zelle mit der darüber liegenden Zelle überlappen. Im Moment ist diese Grenze Teil des Hintergrunds (bisher keine Überlappung).

Jetzt habe ich den Rand vom Hintergrund getrennt und mein Code für die Zellenerstellung sieht folgendermaßen aus:

<code>#define QAImage(NAME) [[[UIImageView alloc] initWithImage:[UIImage imageNamed:NAME]] autorelease]

- (UITableViewCell*) tableView:(UITableView*)table cellForRowAtIndexPath:(NSIndexPath*)index
{
    UITableViewCell *cell = [table dequeueReusableCellWithIdentifier:@"Entry"];
    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                         reuseIdentifier:@"Entry"] autorelease];
        cell.backgroundView = QAImage(@"bg-cell.png");
        cell.selectedBackgroundView = QAImage(@"bg-cell-sel.png");
        cell.selectionStyle = UITableViewCellSelectionStyleGray;
        UIImageView *img = QAImage(@"disclosure.png");
        img.highlightedImage = [UIImage imageNamed:@"disclosure-sel.png"];
        cell.accessoryView = img;
        CGRect r = cell.frame;
        r.size.height = table.rowHeight;
        r.size.width = table.frame.size.width;
        cell.frame = r;
        r = cell.contentView.frame;
        r.origin = CGPointMake(13, 13);
        r.size.width -= 8 + img.frame.size.width;
        r.size.height -= 25;
        [cell.contentView addSubview:[[[TagView alloc] initWithFrame:r] autorelease]];
        img = QAImage(@"cell-top.png");
        img.highlightedImage = [UIImage imageNamed:@"cell-top-sel.png"];
        img.opaque = NO;
        r = img.frame;
        r.origin = CGPointMake(0, 1 - r.size.height); // The (supposed) overlapping happens here.
        img.frame = r;
        cell.contentView.clipsToBounds = NO;
        [cell.contentView addSubview:img];
    }
    // Here I set the title. (omitted)
    return cell;
}
</code>

Das Problem ist,Der Rand wird nur angezeigt, wenn ich in der Tabelle nach oben scrolleAndernfalls wird es von der darüber liegenden Zelle überlappt. (Der falsche Weg herum.)

ich habe es versucht[cell setNeedsDisplay] im-tableView:willDisplayCell:forRowAtIndexPath:, Rand hinzufügen (cell-top.png) Jedes Mal, wenn eine Zelle angefordert wird (was offensichtlich zu mehreren Zeichnungen führt und nicht gut aussieht; trotzdem löst es mein Problem immer noch nicht)img.layer.zPosition = 2.

Wie kann ich UIImageView dazu zwingen, die ganze Zeit über den Überblick zu behalten?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage