我有一个UIView,因为我有画图。在这个视图我是画笔工具,矩形工具和更新新图像和绘图。就像ACEDrawingView
一样我面临着橡皮擦工具的一个问题。当我使用橡皮擦时,背景图像的颜色也消失了。请查看屏幕截图。
在上图中,黑色部分是笔画,白色部分是我的橡皮画。用户做橡皮擦时不想清除背景图像。只是绘图。
重绘图片代码
- (void)updateCacheImage:(BOOL)redraw
{
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
if (redraw) {
// erase the previous image
self.image = nil;
// load previous image (if returning to screen)
[[self.prev_image copy] drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
// I need to redraw all the lines
for (id<ACEDrawingTool> tool in self.pathArray) {
[tool draw];
}
} else {
// set the draw point
[self.image drawAtPoint:CGPointZero];
[self.currentTool draw];
}
// store the image
self.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
橡皮擦工具图纸
- (void)draw
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context, self.path);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, self.lineWidth);
CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor);
CGContextSetBlendMode(context, kCGBlendModeNormal);
CGContextSetAlpha(context, self.lineAlpha);
CGContextStrokePath(context);
}
答案 0 :(得分:0)
这是因为您正在使用@Entity
@Table(name="Projektstati")
public class Projektstati implements Serializable{
@ManagedProperty("#{sessionBean}")
private SessionBean sessionBean;
public void setSessionBean(SessionBean sessionBean){this.sessionBean = sessionBean;}
,我猜这是最后选择的颜色,在这种情况下是白色。尝试使用self.lineColor.CGColor
替换当前颜色,并添加以下代码行[UIColor clearColor]
答案 1 :(得分:0)
我现在面对这个问题......刚刚找到了类似下面的解决方案。你的橡皮擦颜色应该就像你的背景视图背景颜色。
例如: CGContextSetStrokeColorWithColor(context,yourviewBackgroundColor);