指定视图的某个边的圆角
我们一般切视图的圆角的时候
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)];
这样 很简单的就可以解决视图某个角切圆角了。