UILabel添加GradientLayer

向UILabel添加背景渐变我使用下面的代码。

在使用渐变之前,UILabel像这样出现。

WithOut梯度

现在,添加一个渐变我使用下面的代码。

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]; 

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

用渐变

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

 [self.myView.layer insertSublayer:gradLayer atIndex:0]; 

您可能需要将标签设置为不同的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];