为UILabel设置渐变背景颜色错误

时间:2017-08-29 01:32:12

标签: ios uicolor cagradientlayer

我通过以下代码生成了渐变UIColor:

1.H1'

为了验证UIColor,我添加了以下代码:

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,
                     (__bridge id)[UIColor yellowColor].CGColor,
                     (__bridge id)[UIColor blueColor].CGColor];
gradientLayer.locations = @[@0.3, @0.5, @1.0];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1.0, 0);
gradientLayer.frame = CGRectMake(0, 0, 300, 100);
UIGraphicsBeginImageContextWithOptions(gradientLayer.bounds.size,NO, [UIScreen mainScreen].scale);
[gradientLayer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *gradientImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIColor *gradientColor = [UIColor colorWithPatternImage:gradientImage];

我发现在UIView上,颜色正常,UILabel,颜色变小As shown:

我想知道为什么?有解决方案吗?感谢。

2 个答案:

答案 0 :(得分:0)

还有很多其他方法可以做到这一点。 colorWithPatternImage总是很漂亮;为什么不使用CAGradientLayer?毕竟,这就是它的用途。或者,既然您知道视图以您想要的方式工作,为什么不清楚标签的背景颜色,并将渐变视图放在后面?

答案 1 :(得分:0)

我不明白为什么在使用AutoLayout时问题就消失了:

enter image description here enter image description here