Un consejo más sobre la forma en que Christian muestra el fondo de la esquina redondeada para la tabla agrupada.
Si lo uso cornerRadius = 10
para la celda, muestra el fondo de selección redondeado de cuatro esquinas. No es lo mismo con la interfaz de usuario predeterminada de la vista de tabla.
Entonces, pienso en una manera fácil de resolverlo con cornerRadius . Como puede ver en los códigos a continuación, verifique la ubicación de la celda (superior, inferior, media o inferior) y agregue una subcapa más para ocultar la esquina superior o la esquina inferior. Esto solo muestra exactamente el mismo aspecto con el fondo de selección de la vista de tabla predeterminada.
Probé este código con iPad splitterview
. Puede cambiar la posición del marco de patchLayer según lo necesite.
Avíseme si hay una forma más fácil de lograr el mismo resultado.
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];
}
}
}