iPhone: создать CGLayer с градиентной точкой и прозрачным фоном - PullRequest
1 голос
/ 04 августа 2011

Я хотел бы создать 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.Как я могу сделать этот фон прозрачным?

Спасибо за вашу помощь.

...