Еще один совет, как Кристиану показывать фон с закругленными углами для сгруппированной таблицы.
Если я использую cornerRadius = 10
для ячейки, он показывает округленный фон четырехугольника. Это не то же самое с пользовательским интерфейсом по умолчанию для табличного представления.
Итак, я думаю о простом способе решить его с помощью cornerRadius . Как видно из приведенных ниже кодов, проверьте расположение ячейки (верхний, нижний, средний или верхний нижний) и добавьте еще один подслой, чтобы скрыть верхний или нижний угол. Это просто показывает точно такой же вид с фоном выбора представления таблицы по умолчанию.
Я проверил этот код с iPad splitterview
. Вы можете изменить положение рамки patchLayer, как вам нужно.
Пожалуйста, дайте мне знать, если есть более простой способ достичь того же результата.
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];
}
}
}