部分圆角
- 先设置fram
//满省
self.lbMan.frame = CGRectMake(10*kFixRaxW, 7*kFixRaxW, 47*kFixRaxW, 22*kFixRax);
//左圆角
UIBezierPath *maskPathMan = [UIBezierPath bezierPathWithRoundedRect:_lbMan.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomLeft cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayerMan = [[CAShapeLayer alloc] init];
maskLayerMan.frame = _lbMan.bounds;
maskLayerMan.path = maskPathMan.CGPath;
_lbMan.layer.mask = maskLayerMan;
- 如果是让label自适应的话,需要加上系统10之后的
adjustsFontForContentSizeCategory
方法。然后再切圆角
[lbMan sizeToFit];
if (iOS10) {
lbMan.adjustsFontForContentSizeCategory = YES;
}
⚠️总之,一定要让空间先有frame,然后再设置部分圆角,否则会出现空间看不见控件的情况。
部分圆角之后,加borderWidth
- 如果你直接设置borderWidth,部分圆角那里会有空白
lbSheng.layer.borderColor = WGColorHex(0xFFFF0033).CGColor;
lbSheng.layer.borderWidth=1.0f;

- 正确的操作方式是这样:
self.lbSheng.frame = CGRectMake(57*kFixRaxW, 7*kFixRaxW, 83*kFixRaxW, 22*kFixRax);
[self.lbSheng wg_shapeCorner:UIRectCornerTopRight | UIRectCornerBottomRight size:CGSizeMake(10, 10)];
CAShapeLayer* shapeSheng = [CAShapeLayer layer];
shapeSheng.path = ((CAShapeLayer *)self.lbSheng.layer.mask).path;
shapeSheng.strokeColor = WGColorHex(0xFFFF0033).CGColor;//边框色
shapeSheng.lineWidth = 1.0f;//边框宽度
shapeSheng.fillColor = [UIColor clearColor].CGColor;//填充色
[self.lbSheng.layer addSublayer:shapeSheng];//addSublayer

end.
网友评论