gpt4 book ai didi

ios - CAGradientLayer 给予 EXC_BAD_ACCESS?

转载 作者:行者123 更新时间:2023-11-29 03:58:11 30 4
gpt4 key购买 nike

我试图让 UIScrollView 的末端淡出 - 就像 UITableView 一样。我找到了下面的代码。我在 UIScrollView 子类中的 initWithFrame:... 内部调用的方法中使用它。

if (!maskLayer)
{
maskLayer = [CAGradientLayer layer];

CGColorRef outerColor = [UIColor colorWithWhite:0 alpha:1.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;

maskLayer.colors = [NSArray arrayWithObjects:(__bridge id)outerColor,
(__bridge id)innerColor, (__bridge id)innerColor, (__bridge id)outerColor, nil];
maskLayer.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.2],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:1.0], nil];

maskLayer.bounds = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
maskLayer.anchorPoint = CGPointZero;
CGColorRelease(outerColor);
CGColorRelease(innerColor);
self.layer.mask = maskLayer;
}

注意:我已经看过 this question ,但我的颜色之前已经有了 __bridge

我确信这是非常基本的东西,但我就是无法弄清楚。我添加了 CGColorRelease 行,希望能够修复它,但它没有...

有人看到我看不到的东西吗?

最佳答案

假设您正在 XIB 中设置 ScrollView ,请删除 if 语句并将代码放入子类中的 awakeFromNib 中。如果手动创建 ScrollView 对象,请在执行 inithWithFrame 后调用该代码。

此外,翻转outerColor 和innerColor 变量的alpha 值。这是代码。

- (void) setGradient
{
CAGradientLayer * maskLayer = [CAGradientLayer layer];

// Flipped your alpha values around.
CGColorRef outerColor = [UIColor colorWithWhite:0 alpha:0.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;

maskLayer.colors = [NSArray arrayWithObjects:(__bridge id)outerColor,
(__bridge id)innerColor, (__bridge id)innerColor, (__bridge id)outerColor, nil];
maskLayer.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.2],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:1.0], nil];

maskLayer.bounds = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
maskLayer.anchorPoint = CGPointZero;
CGColorRelease(outerColor);
CGColorRelease(innerColor);
self.layer.mask = maskLayer;

}
- (void)awakeFromNib
{
[self setGradient];
}

关于ios - CAGradientLayer 给予 EXC_BAD_ACCESS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226067/

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