UILabel添加GradientLayer

web*_*r67 3 uilabel ios cagradientlayer

要向UILabel添加背景渐变,请使用以下代码.

在使用渐变之前,UILabel看起来像这样.

WithOut Gradient

现在,要添加渐变,我使用以下代码.

   CAGradientLayer *gradLayer=[CAGradientLayer layer];
    gradLayer.frame=self.myView.layer.bounds;
    [gradLayer setColors:[NSArray arrayWithObjects:(id)([UIColor redColor].CGColor), (id)([UIColor cyanColor].CGColor),nil]];
    gradLayer.endPoint=CGPointMake(1.0, 0.0);

    [self.myView.layer addSublayer:gradLayer];
Run Code Online (Sandbox Code Playgroud)

UILabel然后如下,但没有文字.

随着渐变

我也尝试在UILabel图层的底部添加图层,但没有成功.

[self.myView.layer insertSublayer:gradLayer atIndex:0];
Run Code Online (Sandbox Code Playgroud)

Und*_*ndo 5

您可能需要将标签设置为另一个UIView的顶部:

 UIView *labelBackground = [[UIView alloc] initWithFrame:self.label.frame];
 self.label.backgroundColor = [UIColor clearColor];
 self.label.frame = self.label.bounds;

 CAGradientLayer *gradLayer=[CAGradientLayer layer];
 gradLayer.frame = labelBackground.layer.bounds;
 [gradLayer setColors:[NSArray arrayWithObjects:(id)([UIColor redColor].CGColor), (id)([UIColor cyanColor].CGColor),nil]];
 gradLayer.endPoint=CGPointMake(1.0, 0.0);

 [labelBackground.layer addSublayer:gradLayer];

 [labelBackground addSubview:self.label];

 [self.view addSubview:labelBackground];
Run Code Online (Sandbox Code Playgroud)