Dav*_*Dee 6 iphone background paint objective-c cgcontext
我是处理CGContexts的新手,我只是想通过简单的触摸绘画和草图教程(http://blog.effectiveui.com/?p=8105)来解决问题.
当我改变CGContext的背景颜色时,我碰到了一堵砖墙.
我正在启动这样的conext:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
并改变这样的笔画颜色和宽度:
UIColor *color = [UIColor whiteColor];
CGContextSetStrokeColorWithColor(cacheContext, [color CGColor]);
CGContextSetLineCap(cacheContext, kCGLineCapRound);
CGContextSetLineWidth(cacheContext, 4);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用黑色(在初始或在绘图/笔划设置部分中)更改背景颜色时,CGContextSetRGBFillColor(cacheContext, 1, 1, 1, 1);没有任何效果.
是否有人能够指出我正确的方向或更好/正确的地方拨打电话,或正确的使用电话?非常感谢您的时间!
Lil*_*ard 22
您不能只设置颜色并期望上下文填充新颜色.您需要将该颜色实际绘制到上下文中.在init方法中,在设置填充颜色后,尝试使用类似的东西
CGContextFillRect(cacheContext, (CGRect){CGPointZero, size});
Run Code Online (Sandbox Code Playgroud)
在相关的说明中,默认情况下上下文没有黑色.它们具有透明的颜色.现在,如果您的上下文没有alpha通道,那么这将最终变为黑色,但如果您的上下文确实有alpha通道并且您看到黑色,那是因为您将输出呈现在黑色的顶部(或者,您可以将透明图像放入opaque标记设置为true 的图层中,CoreAnimation最终将其绘制在黑色顶部).
| 归档时间: |
|
| 查看次数: |
8620 次 |
| 最近记录: |