- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{if([cell respondsToSelector:@selector(tintColor)]) {if(tableView ==self.aTableView) {
CGFloat cornerRadius=5.f;
cell.backgroundColor=UIColor.clearColor;
CAShapeLayer*layer =[[CAShapeLayer alloc] init];
CGMutablePathRef pathRef=CGPathCreateMutable();
CGRect frame=cell.bounds;
frame.origin.x= frame.origin.x+5;
frame.size.width= frame.size.width-20;
CGRect bounds=frame;
BOOL addLine=NO;if(indexPath.row ==0&& indexPath.row == [tableView numberOfRowsInSection:indexPath.section]-1) {
CGPathAddRoundedRect(pathRef, nil, bounds, cornerRadius, cornerRadius);
}elseif(indexPath.row ==0) {
CGPathMoveToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMaxY(bounds));
CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMinY(bounds), CGRectGetMidX(bounds), CGRectGetMinY(bounds), cornerRadius);
CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMinY(bounds), CGRectGetMaxX(bounds), CGRectGetMidY(bounds), cornerRadius);
CGPathAddLineToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds));
addLine=YES;
}elseif(indexPath.row == [tableView numberOfRowsInSection:indexPath.section]-1) {
CGPathMoveToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMinY(bounds));
CGPathAddArcToPoint(pathRef, nil, CGRectGetMinX(bounds), CGRectGetMaxY(bounds), CGRectGetMidX(bounds), CGRectGetMaxY(bounds), cornerRadius);
CGPathAddArcToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds), CGRectGetMaxX(bounds), CGRectGetMidY(bounds), cornerRadius);
CGPathAddLineToPoint(pathRef, nil, CGRectGetMaxX(bounds), CGRectGetMinY(bounds));
}else{
CGPathAddRect(pathRef, nil, bounds);
addLine=YES;
}
layer.path=pathRef;
CFRelease(pathRef);
layer.fillColor= [UIColor colorWithWhite:1.f alpha:0.8f].CGColor;if(addLine ==YES) {
CALayer*lineLayer =[[CALayer alloc] init];
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=UIColor.clearColor;
cell.backgroundView=testView;
}
}
}
/**
* 计算方式:
step1:数一下一行能显示几个汉字
step2:算一下一共几行
step3:如果汉字不满一行按一行一算
step4:用行数乘以行高*/intlineCount =20;
CGFloat lbContentHeight= lbQ.text.length /lineCount;if(lbQ.text.length %lineCount) {
lbContentHeight++;
}
lbContentHeight*=20;