有时在开发中,我们需要处理一些诸如下图的问题,当我们需要四个角都是圆角的时候,这时候很好处理,只需要设置 layer.cornerRadius 即可,但当只需要两个圆角时,这时就比较难处理了。
这时我们可以用CAShapeLayer来处理这个问题。
UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view.backgroundColor=[UIColor greenColor];
[self.view addSubview:view];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.path = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners: UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii: (CGSize){5.0f, 5.0f}].CGPath
view.layer.masksToBounds = YES;
view.layer.mask = maskLayer;
UIRectCorner有五种
UIRectCornerTopLeft //上左
UIRectCornerTopRight //上右
UIRectCornerBottomLeft // 下左
UIRectCornerBottomRight // 下右
UIRectCornerAllCorners // 全部