天天看點

IOS-tableView 設定圓角

// 設定 tableView整體的圓角設定

//    /// 設定圓角

//   

v_tableview.layer.cornerRadius = 7;

v_tableview.layer.masksToBounds = YES;

//    ///

設定邊框

//    v_tableview.layer.borderWidth =

1;

//    v_tableview.layer.borderColor = [COLOR(189, 189, 189,

1) CGColor];

//IOS7  分組後每組圓角的設定

//#pragma mark - Table view data source

//- (void)tableView:(UITableView

*)tableView willDisplayCell:(UITableViewCell *)cell

forRowAtIndexPath:(NSIndexPath *)indexPath{

//  

//    if ([cell

respondsToSelector:@selector(tintColor)])

{

//        if (tableView == v_tableview)

//          

//           

CGFloat cornerRadius =

10.f;

cell.backgroundColor =

UIColor.clearColor;

CAShapeLayer *layer = [[CAShapeLayer alloc]

init];

CGMutablePathRef pathRef =

CGPathCreateMutable();

CGRect bounds = CGRectInset(cell.bounds, 0,

0);

BOOL addLine =

NO;

//             

//繪制圓角

if (indexPath.row == 0 && indexPath.row == [tableView

numberOfRowsInSection:indexPath.section]-1)

//               

CGPathAddRoundedRect(pathRef, nil, bounds, cornerRadius,

cornerRadius);

//              

//            }

else if (indexPath.row == 0)

CGPathMoveToPoint(pathRef, nil, CGRectGetMinX(bounds),

CGRectGetMaxY(bounds));

CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMinY(bounds),

CGRectGetMidX(bounds), CGRectGetMinY(bounds),

CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMinY(bounds),

CGRectGetMaxX(bounds), CGRectGetMidY(bounds),

CGPathAddLineToPoint(pathRef, nil, CGRectGetMaxX(bounds),

addLine =

YES;

else if (indexPath.row == [tableView numberOfRowsInSection:indexPath.section]-1)

CGRectGetMinY(bounds));

CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMaxY(bounds),

CGRectGetMidX(bounds), CGRectGetMaxY(bounds),

CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds),

else

CGPathAddRect(pathRef, nil,

bounds);

}

layer.path =

pathRef;

CFRelease(pathRef);

layer.fillColor = [UIColor colorWithWhite:1.f

alpha:0.8f].CGColor;

if (addLine == YES)

CALayer *lineLayer = [[CALayer alloc]

CGFloat lineHeight = (1.f / [UIScreen

mainScreen].scale);

lineLayer.frame = CGRectMake(CGRectGetMinX(bounds)+10,

bounds.size.height-lineHeight, bounds.size.width-10,

lineHeight);

lineLayer.backgroundColor =

tableView.separatorColor.CGColor;

[layer

addSublayer:lineLayer];

UIView *testView = [[UIView alloc]

initWithFrame:bounds];

[testView.layer insertSublayer:layer

atIndex:0];

testView.backgroundColor =

cell.backgroundView =

testView;

//       

//        

//    

//}

//tableView 選中的顔色設定

//無色  

cell.selectionStyle = UITableViewCellSelectionStyleNone;  

//藍色  

cell.selectionStyle = UITableViewCellSelectionStyleBlue;  

//灰色  

cell.selectionStyle = UITableViewCellSelectionStyleGray;