美文网首页
iOS 切圆角、borderWidth ⚠️注意点

iOS 切圆角、borderWidth ⚠️注意点

作者: samtake | 来源:发表于2019-10-09 02:54 被阅读0次

部分圆角

  • 先设置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;
image.png
  • 正确的操作方式是这样:
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
image.png

end.

相关文章

网友评论

      本文标题:iOS 切圆角、borderWidth ⚠️注意点

      本文链接:https://www.haomeiwen.com/subject/ysddyctx.html