UILabel добавить градиентный слой [дубликат]
На этот вопрос уже есть ответ здесь:
Чтобы добавить градиент фона к 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];
1 ответ:
Вам, вероятно, придется вместо этого установить метку поверх другого 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];