代码之家  ›  专栏  ›  技术社区  ›  kAiN

如何使用CAShaperLayer设置角半径值?

  •  2
  • kAiN  · 技术社区  · 7 年前

    [pathLayer setCornerRadius: 5]; 但我没有得到结果。。。你能帮助我吗?如何指定角半径值?这是我使用的代码

        // crea le barre del grafico e gli assegna l'altezza della label y corrispondente
        UIBezierPath *path = [UIBezierPath bezierPath];
        [path moveToPoint:CGPointMake(xPaddingFromYAxis +spaceBetweenBar *j, 200)];
        [path addLineToPoint:CGPointMake(xPaddingFromYAxis +spaceBetweenBar *j,  yLabelValue.center.y )];
    
        CAShapeLayer *pathLayer = [CAShapeLayer layer];
        pathLayer.frame = self.bounds;
        pathLayer.path = path.CGPath;
        pathLayer.strokeColor = [UIColor darkGrayColor].CGColor;
        pathLayer.fillColor = nil;
        pathLayer.lineWidth = 50;
        [pathLayer setCornerRadius:5];
        pathLayer.masksToBounds = NO;
        [scroll.layer addSublayer:pathLayer];
    

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   Krunal    7 年前

    您需要将掩码设置为“是”。 pathLayer.masksToBounds = YES;


    试试看:

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:CGPointMake(xPaddingFromYAxis +spaceBetweenBar *j, 200)];
    [path addLineToPoint:CGPointMake(xPaddingFromYAxis +spaceBetweenBar *j,  yLabelValue.center.y )];
    
    CAShapeLayer *pathLayer = [CAShapeLayer layer];
    pathLayer.frame = self.bounds;
    pathLayer.path = path.CGPath;
    pathLayer.strokeColor = [UIColor darkGrayColor].CGColor;
    pathLayer.fillColor = nil;
    pathLayer.lineWidth = 50;
    [pathLayer setCornerRadius:5];
    pathLayer.masksToBounds = YES;
    [scroll.layer addSublayer:pathLayer];