平常设置视图的圆角最普遍的就是设置四个角的,方法也就是一句代码解决:
view.layer.cornerRadius = 10;
但有时需求会是指定某个,或者特定哪几个角设置圆角,所以我们需要不一样的解决方法:
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, 150, 60, 60)];
view.backgroundColor = [UIColor orangeColor];
// UIRectCornerTopLeft 左上角
// UIRectCornerTopRight 右上角
// UIRectCornerBottomLeft 左下角
// UIRectCornerBottomRight 右下角
// UIRectCornerAllCorners 四个角
// byRoundingCorners: 参数可以选择上面五种,需要制定某几个角为圆角,就要用 “|” 组合
// cornerRadii: 代表圆角值大小
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;
[self.view addSubview:view];
此方法可以适用很多种视图,比如UIView
、UILabel
、UIImageView
、UIButton
等。