iPhone:使用渐变点和透明背景创建CGLayer

时间:2011-08-04 16:34:08

标签: iphone ipad ios4 cgcontext cglayer

我想创建一个CGLayer,包含一个边界渐变的点。因为我将使用此图层在主屏幕上绘制多个点。

这是我的代码:     CGRect r = CGRectMake(0,0,64,64);     textureLayer = CGLayerCreateWithContext(context,r.size,NULL);     CGContextRef textureContext = CGLayerGetContext(textureLayer);

CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] =
{
    0.0, 0.0, 0.0, 1.0,
    1.0, 1.0, 1.0, 1.0 
};
gradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));
CGColorSpaceRelease(rgb);

CGPoint start, end;
start = end = CGPointMake(32, 32);
CGFloat startRadius = 20;
CGFloat endRadius = 30;
CGContextSaveGState(textureContext);
CGGradientDrawingOptions options = 0 | kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation;
CGContextDrawRadialGradient(textureContext, gradient, start, startRadius, end, endRadius, options);
CGContextRestoreGState(textureContext);

我得到了这个结果:enter image description here 它是正确的。但是当我在主屏幕上绘制时,而不是像我期望的那样,这就是结果:enter image description here

我认为问题是我的CGLayer中的白色背景。我如何才能使背景透明化?

感谢您的帮助。

0 个答案:

没有答案