gpt4 book ai didi

iphone - 向 UIScrollView 添加渐变

转载 作者:行者123 更新时间:2023-12-03 21:06:47 27 4
gpt4 key购买 nike

我正在尝试添加渐变以便淡入和淡出 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 值尝试了几种不同的方法,但我无法让它看起来正确,只是让文本淡出。我尝试使用 alpha 从 0.0 到 1.0 的背景颜色,但没有看到任何变化。

最佳答案

如果将渐变添加到 ScrollView ,它将随 ScrollView 滚动。将其添加到 ScrollView super View 应该可以解决问题。

如果它足够大,它最初应该是可见的。

这对我有用:

+ (CAGradientLayer *)maskWithHorizontalFadingBordersWithinBounds:(CGRect)bounds
{
CAGradientLayer * maskLayer = [CAGradientLayer layer];

id outerColor = (id)[UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
id innerColor = (id)[UIColor colorWithWhite:1.0 alpha:1.0].CGColor;

maskLayer.colors = @[outerColor, innerColor, innerColor, outerColor];
maskLayer.locations = @[@0.0 , @0.025 , @0.975 , @1.0];
maskLayer.bounds = bounds;
maskLayer.anchorPoint = CGPointZero;

return maskLayer;
}

在适当的初始值设定项内调用此方法,请注意不要过于频繁地创建图层。

scrollViewsSuperView.layer.mask = [CAGradientLayer maskWithHorizontalFadingBordersWithinBounds:scrollView.bounds];

缺点:滚动条也会受到影响,我还是更喜欢这种简单的解决方案。

替代方案:将 mask 作为子层添加到 ScrollView 本身,并在scrollViewDidScroll中将其位置重置为0。

关于iphone - 向 UIScrollView 添加渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347060/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com