อีกหนึ่งเคล็ดลับเกี่ยวกับวิธีของคริสเตียนในการแสดงพื้นหลังมุมโค้งมนสำหรับตารางที่จัดกลุ่ม
ถ้าฉันใช้cornerRadius = 10
เซลล์มันจะแสดงพื้นหลังการเลือกแบบกลมของมุมทั้งสี่ มันไม่เหมือนกันกับ UI เริ่มต้นของมุมมองตาราง
ดังนั้นผมคิดว่าเกี่ยวกับวิธีที่ง่ายในการแก้ไขมันด้วยcornerRadius อย่างที่คุณเห็นจากรหัสด้านล่างตรวจสอบตำแหน่งของเซลล์ (บนสุดล่างกลางหรือ topbottom) และเพิ่มเลเยอร์ย่อยอีกหนึ่งชั้นเพื่อซ่อนมุมด้านบนหรือมุมล่าง นี่เป็นเพียงการแสดงลักษณะเดียวกันโดยมีพื้นหลังการเลือกมุมมองตารางเริ่มต้น
ผมทดสอบรหัสนี้กับ splitterview
iPad คุณสามารถเปลี่ยนตำแหน่งเฟรม 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];
}
}
}