我有这个代码来为内外边界之间的区域着色。
CGContextSaveGState(context);
CGContextAddRect(context, self.bounds);
CGContextAddPath(context, inlinePath);
CGContextEOClip(context);
CGContextAddPath(context, outlinePath);
CGContextClip(context);
CGContextSetFillColorWithColor(context, _myColor.CGColor);
CGContextFillRect(context, self.bounds);
CGContextRestoreGState(context);
这是当地例行程序drawChartInContext:
的一部分
当我生成这样的图像时它很有用:
UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 2.0);
[self drawChartInContext:UIGraphicsGetCurrentContext()];
UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但是,当我从drawRect
拨打电话时,我只是将整个outlinePath
区域填满_myColor
。
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
[self drawChartInContext:context];
}
可能出现什么问题?
答案 0 :(得分:0)
刚想通了。这是两个疏忽的结合:
inlinePath
的区域为零(特殊情况有效)myColor
有1.0 alpha(配置错误)。