我正在尝试为我的UIScrollView添加渐变,以便淡入淡出文本。有人建议我添加CAGradientLayer。一开始,我想尝试像这样做,只覆盖整个区域,而不是担心顶部和底部部分,因为我对渐变和绘画一般都很陌生。我尝试了这种方法,但是我认为它不正确,因为我的UIScrollView中的UILabel文本看起来没有改变。我走在正确的道路上吗?谢谢。
编辑:
编辑:
CAGradientLayer *gradient = [CAGradientLayer layer];
CGColorRef darkColor = [[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.6] CGColor];
// CGColorRef darkColor = [[self.scrollView.backgroundColor colorWithAlphaComponent:0.5] CGColor];
// CGColorRef lightColor = [[UIColor colorWithRed:0.8 green:0.8 blue:0.8 alpha:0.6] CGColor];
CGColorRef lightColor = [[self.scrollView.backgroundColor colorWithAlphaComponent:1.0] CGColor];
CGRect gradientFrame = self.scrollView.bounds;
gradientFrame.size.height = 50;
gradient.frame = gradientFrame;
gradient.colors = [NSArray arrayWithObjects: (id)darkColor, (id)lightColor, nil];
[self.scrollView.layer addSublayer:gradient];
我已经尝试了几种不同的方式,使用不同的RGB、alpha值,但是仍然无法使文本渐变消失看起来正确。我尝试了将backgroundColor与alpha从0.0到1.0一起使用,但是我没有看到任何变化。
scrollView.backgroundColor
来检查是否存在在其上添加的组件透明度.alpha
问题。 - Vincent Guercialpha
属性的代码,否则很难想象您在做什么 :) - Vincent GuercicolorWithAlphaComponent
/ 解决方案,不使用colorWithAlphaComponent
...UIColor
有点奇怪,并且具有不同行为的底层类... 也许你应该直接使用CGColor
... 就像CGColorCreateCopyWithAlpha
。 - Vincent Guerci