Iphone 更改CGC上下文的背景颜色
我对处理CGContext非常陌生,我只是想通过简单的触摸画画和素描教程来了解一些事情(http://blog.effectiveui.com/?p=8105) 不过,在改变我的背景颜色时,我遇到了麻烦 我是这样开始的: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
- (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最终将其绘制在黑色的上方)。可能的重复:这很好。非常感谢您的回答和清晰的解释!