在IOS的view处理中,经常会需要切任意角,比如我就切下面,上面不动。或者就切左边,右边不动。或者每个角的弧度都不同。代码如下
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:cell.leftView.bounds byRoundingCorners:UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = cell.leftView.bounds;
maskLayer.path = maskPath.CGPath;
cell.leftView.layer.mask = maskLayer;
我们可以看一下这个方法 bezierPathWithRoundedRect 三个参数的意义分别如下
1.要处理的view
2.要处理那个角,一共4个角。可以用枚举值列出想要处理的角
3.要处理角对应的切弧度的半径
然后就得到我们想要的图形,比如我这个是要对自定义cell中的leftview做右边两个角的圆角处理。效果如下:
当然这里有个坑,就是贝塞尔的时序问题。如果想要具体了解。请看下一篇帖子详解:
http://blog.youkuaiyun.com/lee727n/article/details/75000720