指定视图的某个边的圆角

我们一般切视图的圆角的时候 

imageview.layer.masksToBounds = YES;
imageview.layer.cornerRadius = 30;
 
这时候imageview的宽高是60.0f会切出圆形  但是我们常见一些视图控件 并不是都是直接切成了圆形 而是不同的边 切了不同的圆角
这时候需要用到的一个贝塞尔曲线。 解决方式虽然有很多 但是个人认为这个是最清晰好用的。
 
好 上代码
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerBottomLeft cornerRadii:CGSizeMake(20, 20)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;

创建贝塞尔曲线 然后其中一个byRoundingCorners后面的属性是 UIRectCornerBottomLeft 意思是下左的圆角  设置了角度之后 就是其他三个角为直角  这个角为20度的圆角 

当然 这里除了下左还可以有很多属性  

列出来:UIRectCornerTopLeft 上左

UIRectCornerTopRight 上右

UIRectCornerBottomLeft 下左

UIRectCornerBottomRight 下右

UIRectCornerAllCorners 所有的角  很清晰明了吧 

然后 设置多个角就在这属性后面加上  |  这个符号即可  因为是枚举值

示例:

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(20, 20)];

 这样 很简单的就可以解决视图某个角切圆角了。

原文地址:https://www.cnblogs.com/wangxiaoqi/p/6417097.html