添加CAGradient图层但无法获得渐变效果

时间:2016-11-04 09:43:04

标签: ios objective-c gradient

这里我使用此代码来提供渐变效果,但根本没有获得效果。

 CAGradientLayer *layer2 = [CAGradientLayer layer];

 NSArray *gradientColors = [NSArray arrayWithObjects:(id)[self colorWithHexString:@"3eb79d"].CGColor,(id)[self colorWithHexString:@"3fb65c"].CGColor,(id)[self colorWithHexString:@"3cb7da"].CGColor, nil];

  [layer2 setColors:gradientColors];
  [layer2 setFrame:cell.userBackgroundView.layer.frame];
  [cell.userBackgroundView.layer insertSublayer:layer2 atIndex:0];
  cell.userBackgroundView.clipsToBounds = YES;

3 个答案:

答案 0 :(得分:1)

试试这个

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame =cell.userBackgroundView.frame;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor clearColor] CGColor], (id)[[UIColor blackColor] CGColor], nil];
[cell.userBackgroundView.layer insertSublayer:gradient atIndex:0];

答案 1 :(得分:0)

尝试将子图层的索引从0更改为-1

[cell.userBackgroundView.layer insertSublayer:layer2 atIndex:-1];

确保您的userBackgroundView未被其他视图覆盖。

答案 2 :(得分:0)

使用

[layer2 setFrame:cell.userBackgroundView.bounds];

而不是

[layer2 setFrame:cell.userBackgroundView.layer.frame];

如果您使用的是自动套餐,请务必在viewDidAppearviewDidLayOutSubviews

中设置框架