Satu lagi tip untuk cara Christian untuk menunjukkan latar belakang sudut bundar untuk tabel grup.
Jika saya gunakan cornerRadius = 10
untuk sel, ini menunjukkan latar belakang pilihan bulat empat sudut. Ini tidak sama dengan UI default tampilan tabel.
Jadi, saya memikirkan cara mudah untuk menyelesaikannya dengan cornerRadius . Seperti yang dapat Anda lihat dari kode di bawah ini, periksa tentang lokasi sel (atas, bawah, tengah atau topbottom) dan tambahkan satu lagi sub lapisan untuk menyembunyikan sudut atas atau sudut bawah. Ini hanya menunjukkan tampilan yang persis sama dengan latar belakang pemilihan tampilan tabel default.
Saya menguji kode ini dengan iPad splitterview
. Anda dapat mengubah posisi bingkai patchLayer sesuai kebutuhan.
Tolong beri tahu saya jika ada cara yang lebih mudah untuk mencapai hasil yang sama.
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];
}
}
}