Mais uma dica da maneira de Christian mostrar o plano de fundo dos cantos arredondados para as mesas agrupadas.
Se eu usar o cornerRadius = 10
celular, ele mostra o fundo de seleção arredondado dos quatro cantos. Não é o mesmo com a interface do usuário padrão da exibição de tabela.
Então, penso em uma maneira fácil de resolver isso com o cornerRadius . Como você pode ver nos códigos abaixo, verifique a localização da célula (superior, inferior, média ou superior) e adicione mais uma subcamada para ocultar o canto superior ou inferior. Isso mostra exatamente a mesma aparência com o fundo de seleção da exibição de tabela padrão.
Testei esse código com o iPad splitterview
. Você pode alterar a posição do quadro do patchLayer conforme necessário.
Informe-me se houver uma maneira mais fácil de obter o mesmo 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];
}
}
}