Ein weiterer Tipp zu Christians Art, den Hintergrund einer abgerundeten Ecke für eine gruppierte Tabelle anzuzeigen.
Wenn ich cornerRadius = 10
für Zelle verwende, wird der abgerundete Auswahlhintergrund von vier Ecken angezeigt. Dies ist nicht dasselbe mit der Standardbenutzeroberfläche der Tabellenansicht.
Also denke ich über einen einfachen Weg nach, um es mit CornerRadius zu lösen . Wie Sie den folgenden Codes entnehmen können, überprüfen Sie die Position der Zelle (oben, unten, in der Mitte oder oben) und fügen Sie eine weitere Unterebene hinzu, um die obere oder untere Ecke auszublenden. Dies zeigt genau das gleiche Aussehen mit dem Auswahlhintergrund der Standardtabellenansicht.
Ich habe diesen Code mit dem iPad getestet splitterview
. Sie können die Frame-Position von patchLayer nach Bedarf ändern.
Bitte lassen Sie mich wissen, ob es einfacher ist, 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];
}
}
}