通过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;
}