之前有人问我这个问题,如何为tableview的每一个分组添加一个圆角。就像下图的卡片效果,其实很简单。我们只需要把每一组的第一个cell和最后一个cell切掉两个角就好了。开始前请将cell的背景色设置透明,contentView的背景色设置为你想要的颜色。代码在下面。。。
-(void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath
{
if(indexPath.section!=1&& indexPath.row==0) {
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:cell.contentView.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)];
//创建 layer
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame= cell.contentView.bounds;
//赋值
maskLayer.path= maskPath.CGPath;
cell.contentView.layer.mask= maskLayer;
}
if((indexPath.section==0&& indexPath.row==5)||(indexPath.section==1&& indexPath.row==0)||(indexPath.section==2&& indexPath.row==2)){
UIBezierPath*maskPath;
//由于我的第二组只有一个cell ,所以这里分开设置。将第二组四个角全切
if(indexPath.row==0) {
maskPath = [UIBezierPath bezierPathWithRoundedRect:cell.contentView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(10, 10)];
}else{
maskPath = [UIBezierPath bezierPathWithRoundedRect:cell.contentView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
}
//创建 layer
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame= cell.contentView.bounds;
//赋值
maskLayer.path= maskPath.CGPath;
cell.contentView.layer.mask= maskLayer;
}
}