iOS 分开设置控件的圆角

开发过程中,圆角是最常用的,我们通常会使用下面的方法去设置控件的圆角。

xxx.layer.cornerRadius = 5;
xxx.layer.masksToBounds = YES;

但这样设置之后四周都会生效,那么怎么单独去设置某个角呢。

// 如果使用自动布局设置约束立即生效
[self.button layoutIfNeeded];
// 设置圆角
CGRect rect = self.button.bounds;
CGSize radio = CGSizeMake(5, 5);//圆角尺寸
UIRectCorner corner = UIRectCornerTopLeft|UIRectCornerTopRight;//这只圆角位置
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:corner cornerRadii:radio];
CAShapeLayer *masklayer = [[CAShapeLayer alloc]init];//创建shapelayer
masklayer.frame = self.button.bounds;
masklayer.path = path.CGPath;//设置路径
self.button.layer.mask = masklayer;

这里可以根据UIRectCorner枚举分开设置各个角的圆角,达到想要的UI效果