Thêm một mẹo nữa theo cách của Christian để hiển thị nền góc tròn cho bảng được nhóm.
Nếu tôi sử dụng cornerRadius = 10
cho ô, nó hiển thị nền lựa chọn tròn bốn góc. Nó không giống với giao diện người dùng mặc định của chế độ xem bảng.
Vì vậy, tôi nghĩ về cách dễ dàng để giải quyết nó với angleRadius . Như bạn có thể thấy từ các mã bên dưới, hãy kiểm tra vị trí của ô (trên cùng, dưới cùng, giữa hoặc topbottom) và thêm một lớp phụ để ẩn góc trên cùng hoặc góc dưới cùng. Điều này chỉ hiển thị chính xác giao diện với nền lựa chọn của chế độ xem bảng mặc định.
Tôi đã thử mã này với iPad splitterview
. Bạn có thể thay đổi vị trí khung của patchLayer nếu cần.
Xin vui lòng cho tôi biết nếu có cách dễ dàng hơn để đạt được kết quả tương tự.
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];
}
}
}