Iphone 更改CGC上下文的背景颜色

Iphone 更改CGC上下文的背景颜色,iphone,objective-c,background,paint,cgcontext,Iphone,Objective C,Background,Paint,Cgcontext,我对处理CGContext非常陌生,我只是想通过简单的触摸画画和素描教程来了解一些事情(http://blog.effectiveui.com/?p=8105) 不过,在改变我的背景颜色时,我遇到了麻烦 我是这样开始的: - (BOOL) initContext:(CGSize)size { int bitmapBytesPerRow; bitmapBytesPerRow = (size.width * 4); cacheContext = CGBitmapCon

我对处理CGContext非常陌生,我只是想通过简单的触摸画画和素描教程来了解一些事情(http://blog.effectiveui.com/?p=8105)

不过,在改变我的背景颜色时,我遇到了麻烦

我是这样开始的:

 - (BOOL) initContext:(CGSize)size {
     int bitmapBytesPerRow;
     bitmapBytesPerRow = (size.width * 4);
     cacheContext = CGBitmapContextCreate (nil, size.width, size.height, 8, bitmapBytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipLast);
     CGContextSetRGBFillColor(cacheContext, 1, 1, 1, 1);
     return YES;
 }
UIColor *color = [UIColor whiteColor];
CGContextSetStrokeColorWithColor(cacheContext, [color CGColor]);
CGContextSetLineCap(cacheContext, kCGLineCapRound); 
CGContextSetLineWidth(cacheContext, 4);
改变笔划的颜色和宽度如下:

 - (BOOL) initContext:(CGSize)size {
     int bitmapBytesPerRow;
     bitmapBytesPerRow = (size.width * 4);
     cacheContext = CGBitmapContextCreate (nil, size.width, size.height, 8, bitmapBytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipLast);
     CGContextSetRGBFillColor(cacheContext, 1, 1, 1, 1);
     return YES;
 }
UIColor *color = [UIColor whiteColor];
CGContextSetStrokeColorWithColor(cacheContext, [color CGColor]);
CGContextSetLineCap(cacheContext, kCGLineCapRound); 
CGContextSetLineWidth(cacheContext, 4);
但是当我尝试使用
CGContextSetRGBFillColor(cacheContext,1,1,1,1)将背景颜色从黑色更改为黑色时(无论是在init还是在绘图/笔划设置部分)没有效果


是否有人能为我指出正确的方向,或是更好/正确的地方拨打电话,或是正确的使用电话?非常感谢您的时间

您不能只设置颜色,而期望上下文填充新颜色。你需要在上下文中画出这种颜色。在init方法中,设置填充颜色后,尝试使用

CGContextFillRect(cacheContext, (CGRect){CGPointZero, size});


另一方面,默认情况下,上下文没有黑色。它们是透明的颜色。现在,如果你的上下文没有alpha通道,那么它最终会变成黑色,但是如果你的上下文有alpha通道,你看到的是黑色,那是因为你在黑色的东西上渲染输出(或者,您将透明图像放入一个图层,该图层的
不透明
标志设置为true,CoreAnimation最终将其绘制在黑色的上方)。

可能的重复:这很好。非常感谢您的回答和清晰的解释!