要向 UILabel 添加背景渐变,我使用以下代码。
在使用渐变之前,UILabel 是这样的。
现在,要添加渐变,我使用以下代码。
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];