为啥CGContextSetFillColorWithColor在ios中的矩形区域填充错误的颜色
Posted
技术标签:
【中文标题】为啥CGContextSetFillColorWithColor在ios中的矩形区域填充错误的颜色【英文标题】:Why CGContextSetFillColorWithColor filling wrong color in a rectangle area in ios为什么CGContextSetFillColorWithColor在ios中的矩形区域填充错误的颜色 【发布时间】:2014-05-22 10:53:35 【问题描述】:在其中一个应用程序中,我使用CGContextSetFillColorWithColor
在矩形区域中填充颜色。它工作正常并填充正确的颜色,但有时它会填充黑色。我不知道这个问题背后的原因。
代码:
rectangle = CGRectMake(x,y, width, 187/[appDelegate.result count]);
CGContextAddRect(context, rectangle);
CGContextStrokePath(context);
NSMutableParagraphStyle* p = [NSMutableParagraphStyle new];
p.alignment = NSTextAlignmentCenter;
// p.lineBreakMode=NSLineBreakByWordWrapping;
UIColor *color1 = [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0];
NSLog(@"color is %@",color1.CGColor);
CGContextSetFillColorWithColor(context,color1.CGColor);
//CGContextSetFillColor(context, CGColorGetComponents(color1.CGColor));
NSLog(@"rectangle is %f",rectangle.size.height);
CGContextFillRect(context, rectangle);
日志信息:颜色是:
<CGColor 0xc216020> [<CGColorSpace 0xc0124b0> (kCGColorSpaceDeviceRGB)] ( 0.933333 0 0 1)
【问题讨论】:
您是否尝试过记录 r、g、b 值?可能是它们没有按预期值出现,有时它们都出现为 0,导致 UIColor 设置为黑色? 【参考方案1】:您的 r,g,b 变量设置是否正确?如果出现黑色填充,请尝试调试它们。
我不知道它是否有帮助,但我更喜欢使用[color1 setFill];
【讨论】:
【参考方案2】:当你填充 Rect 你的上下文时,你应该关闭你的路径!尝试关闭路径,然后 d
【讨论】:
以上是关于为啥CGContextSetFillColorWithColor在ios中的矩形区域填充错误的颜色的主要内容,如果未能解决你的问题,请参考以下文章
为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?