<p>iOS开发可以很方便的借助UIView图层属性layer的三个属性cornerRadius、borderWidth、borderColor实现UIView的描边、圆角效果,但这远远满足不了美工对艺术无止境的追求,只一个角圆角、两个角圆角...不过实现这种效果并不难,没必要跟美工死磕,人家也不容易。= =#</p>
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
view.backgroundColor = [UIColor redColor];
[self.view addSubview:view];
// 创建路径,路径决定圆角效果
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
cornerRadii:CGSizeMake(10, 10)];
// 创建图层,把路径转化为图层效果
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.path = maskPath.CGPath;
maskLayer.frame = view.bounds;
// 把拥有圆角效果的图层添加到视图上实现圆角效果
view.layer.mask = maskLayer;
代码中通过UIBezierPath
创建路径时可以通过参数byRoundingCorners
指定需要圆角的角,可以传一个,也可以按|
分隔传多个,角的类型为UIRectCorner
,可选的值如下:
- UIRectCornerTopLeft
- UIRectCornerTopRight
- UIRectCornerBottomLeft
- UIRectCornerBottomRight
- UIRectCornerAllCorners