Ein weiterer Tipp zu Christians Methode, abgerundete Ecken als Hintergrund für gruppierte Tabellen anzuzeigen.
Wenn ich die cornerRadius = 10
für Zelle, zeigt es vier Ecken abgerundet Auswahl Hintergrund. Es ist nicht das gleiche mit der Standard-UI der Tabellenansicht.
Ich denke also über eine einfache Lösung mit cornerRadius . Wie Sie aus den folgenden Codes ersehen können, prüfen Sie die Lage der Zelle (oben, unten, in der Mitte oder oben/unten) und fügen Sie eine weitere Unterebene hinzu, um die obere oder untere Ecke auszublenden. Dies zeigt genau das gleiche Aussehen wie der Auswahlhintergrund der Standard-Tabellenansicht.
Ich habe diesen Code mit dem iPad getestet splitterview
. Sie können die Rahmenposition des PatchLayers nach Bedarf ändern.
Bitte lassen Sie mich wissen, ob es einen einfacheren Weg gibt, dasselbe Ergebnis zu erzielen.
if (tableView.style == UITableViewStyleGrouped)
{
if (indexPath.row == 0)
{
cellPosition = CellGroupPositionAtTop;
}
else
{
cellPosition = CellGroupPositionAtMiddle;
}
NSInteger numberOfRows = [tableView numberOfRowsInSection:indexPath.section];
if (indexPath.row == numberOfRows - 1)
{
if (cellPosition == CellGroupPositionAtTop)
{
cellPosition = CellGroupPositionAtTopAndBottom;
}
else
{
cellPosition = CellGroupPositionAtBottom;
}
}
if (cellPosition != CellGroupPositionAtMiddle)
{
bgColorView.layer.cornerRadius = 10;
CALayer *patchLayer;
if (cellPosition == CellGroupPositionAtTop)
{
patchLayer = [CALayer layer];
patchLayer.frame = CGRectMake(0, 10, 302, 35);
patchLayer.backgroundColor = YOUR_BACKGROUND_COLOR;
[bgColorView.layer addSublayer:patchLayer];
}
else if (cellPosition == CellGroupPositionAtBottom)
{
patchLayer = [CALayer layer];
patchLayer.frame = CGRectMake(0, 0, 302, 35);
patchLayer.backgroundColor = YOUR_BACKGROUND_COLOR;
[bgColorView.layer addSublayer:patchLayer];
}
}
}