通过tag值判断tableView不同row的位置,如果是第一个,中间部分,最后一个,绘制圆角图片
CALayer *layer =
self.layer;
CAShapeLayer
*maskLayer = [CAShapeLayer
layer];
maskLayer.path = [self
maskPathWithTag:[[dictionary
objectForKey:@"bank_type"]intValue]].CGPath;
layer.mask =
maskLayer;
- (UIBezierPath
*)maskPathWithTag:(int) tag{
//贝塞尔实例对象
UIBezierPath
*maskPath = [UIBezierPath
bezierPath];
[maskPath
moveToPoint:CGPointMake(KBankRadius,
0)];
switch (tag)
{
case 0:
{
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width,
0)];
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width,
self.bounds.size.height)];
[maskPath
addLineToPoint:CGPointMake(0,
self.bounds.size.height)];
[maskPath
addLineToPoint:CGPointMake(0,
0)];
}
break;
case 1:
{
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width
- KBankRadius, 0)];
[maskPath
addArcWithCenter:CGPointMake(self.bounds.size.width
- KBankRadius,
KBankRadius)
radius:KBankRadius
startAngle:M_PI_2
endAngle:0
clockwise:YES];
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width,
self.bounds.size.height)];
[maskPath
addLineToPoint:CGPointMake(0,
self.bounds.size.height)];
[maskPath
addLineToPoint:CGPointMake(0,
KBankRadius)];
[maskPath
addArcWithCenter:CGPointMake(KBankRadius,
KBankRadius)
radius:KBankRadius
startAngle:M_PI
endAngle:M_PI_2
clockwise:YES];
}
break;
case 2:
{
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width,
0)];
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width,
self.bounds.size.height
- KBankRadius)];
[maskPath
addArcWithCenter:CGPointMake(self.bounds.size.width
- KBankRadius,
self.bounds.size.height
- KBankRadius)
radius:KBankRadius
startAngle:0
endAngle:M_PI_2
clockwise:YES];
[maskPath
addLineToPoint:CGPointMake(KBankRadius,
self.bounds.size.height)];
[maskPath
addArcWithCenter:CGPointMake(KBankRadius,
self.bounds.size.height
- KBankRadius)
radius:KBankRadius
startAngle:-M_PI_2
endAngle:-M_PI
clockwise:YES];
[maskPath
addLineToPoint:CGPointMake(0,
0)];
}
break;
case 3:
{
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width
- KBankRadius, 0)];
[maskPath
addArcWithCenter:CGPointMake(self.bounds.size.width
- KBankRadius,
KBankRadius)
radius:KBankRadius
startAngle:M_PI_2
endAngle:0
clockwise:YES];
[maskPath
addLineToPoint:CGPointMake(self.bounds.size.width,
self.bounds.size.height
- KBankRadius)];
[maskPath
addArcWithCenter:CGPointMake(self.bounds.size.width
- KBankRadius,
self.bounds.size.height
- KBankRadius)
radius:KBankRadius
startAngle:0
endAngle:M_PI_2
clockwise:YES];
[maskPath
addLineToPoint:CGPointMake(KBankRadius,
self.bounds.size.height)];
[maskPath
addArcWithCenter:CGPointMake(KBankRadius,
self.bounds.size.height
- KBankRadius)
radius:KBankRadius
startAngle:-M_PI_2
endAngle:-M_PI
clockwise:YES];
[maskPath
addLineToPoint:CGPointMake(0,
KBankRadius)];
[maskPath
addArcWithCenter:CGPointMake(KBankRadius,
KBankRadius)
radius:KBankRadius
startAngle:M_PI
endAngle:M_PI_2
clockwise:YES];
}
break;
default:
break;
}
[maskPath
closePath];
return
maskPath;
}