設置View的一邊圓角
- 效果如圖

半圓角
實現(xiàn)方式 : UIBezierPath CAShapeLayer
核心方法:
+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii
-
基本思路:
通過貝塞爾曲線畫一條半邊圓角的路徑
將該路徑作為CAShapeLayer的path
將該CAShapeLayer作為視圖的mask
通過貝塞爾曲線畫一條半邊圓角的路徑
+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii
該方法會接受三個參數(shù)
rect : 傳控件的bounds
corners : 圓角的位置 ,該值為枚舉類型。指定圓角的位置,可以分別設置左上 、左下、右上、右下。并且可以同時指定,如左上和左下,即示例圖中半邊圓角效果 。 UIRectCornerBottomRight : 右下角 ...
cornerRadii : 圓角大小
eg:
// 獲取一條曲線。曲線路徑為(0,0,96,50).圓角位置為右上和右下,圓角大小為25
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 96, 50) byRoundingCorners:UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(25, 25)];
// 初始化一個CAShapeLayer
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = CGRectMake(0, 0, 96, 50);
// 將曲線路徑設置為layer的路徑
maskLayer.path = path.CGPath;
// 設置控件的mask為CAShapeLayer
self.checkButton.layer.mask = maskLayer;