gpt4 book ai didi

ios - 无法让 CGGradientRef 使用 alpha

转载 作者:行者123 更新时间:2023-11-28 22:13:52 27 4
gpt4 key购买 nike

我正在尝试将 alpha 渐变应用于 UIView,但根本无法使其工作。我当前的 drawRect: 方法如下所示 -

- (void)drawRect:(CGRect)rect
{
CGContextRef currentContext = UIGraphicsGetCurrentContext();

CGGradientRef alphaGradient;
CGColorSpaceRef rgbColorSpace;
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
CGFloat components[8] = { 1.0, 1.0, 1.0, 1.0, // Start color
1.0, 1.0, 1.0, 0.0 }; // End color

rgbColorSpace = CGColorSpaceCreateDeviceRGB();
alphaGradient = CGGradientCreateWithColorComponents(rgbColorSpace, components, locations, num_locations);

CGRect currentBounds = self.bounds;
CGPoint bottomCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMaxY(currentBounds));
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));
CGContextDrawLinearGradient(currentContext, alphaGradient, midCenter, bottomCenter, 0);

CGGradientRelease(alphaGradient);
CGColorSpaceRelease(rgbColorSpace);
}

我确定我在这里缺少某些东西。我已经尝试将 RGB 值更改为 0.0 而不是 1.0,将色彩空间更改为灰度等。

如能为我指明正确的方向,我们将不胜感激。谢谢

最佳答案

我通过确保将 View 的背景颜色设置为清晰,然后将 View 的图层作为 ImageView 上的 mask 来解决此问题。

关于ios - 无法让 CGGradientRef 使用 alpha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22258279/

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