Добавьте цвет градиента на каждый слой. - PullRequest
0 голосов
/ 10 января 2019

I have attached image these are shapes with different color just want to make every shape in circle gradient Я пытаюсь добавить градиент на слое с формой, он дает только эффект градиента на текущем кадре, если я использую его, добавляя слой маски, это не влияет на каждый слой отдельно

вот мой код:

 CAShapeLayer *gradientMask = [CAShapeLayer layer];
    gradientMask.fillColor = [[UIColor clearColor] CGColor];
    gradientMask.strokeColor = [[UIColor blackColor] CGColor];
    gradientMask.lineWidth = _borderStrokeWidth;
    gradientMask.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);

    gradientMask.path = maskLayer.path;


    CAGradientLayer *gradientLayer = [CAGradientLayer layer];
    gradientLayer.locations = [NSArray arrayWithObjects:
                               [NSNumber numberWithFloat:0.8f],
                               [NSNumber numberWithFloat:1.0f],
                               nil];
    gradientLayer.startPoint = CGPointMake(0.5,1.0);
    gradientLayer.endPoint = CGPointMake(1.0,0.5);
    gradientLayer.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
     NSArray *colors = [NSArray arrayWithObjects:(id)[UIColor redColor].CGColor, (id)[UIColor greenColor].CGColor,(id)[UIColor blueColor].CGColor,(id)[UIColor yellowColor].CGColor, nil];
    gradientLayer.colors = colors;

    [gradientLayer setMask:gradientMask];
   // [gradientLayer setMask:shapeLayer];
    [self.layer addSublayer:gradientLayer];

пожалуйста, дайте предложения

...