Comments (5)
+1
from acedrawingview.
well, that is how it's implemented! Eraser in real world is nothing but a magical pen which gives back you White Paper to scratch more!
Here, Eraser and a White Colored Pen are abstractions used to understand layman in a proper Domain Terms; I hope this clears the confusion.
from acedrawingview.
To be able to set the background color to white, and still use the eraser tool change the following pieces of code:
In ACEDrawingTools.m
- (void)draw
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextAddPath(context, path);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, self.lineWidth);
// disable blend mode and set stroke color to white since we do not want a transparent bg
// https://github.com/acerbetti/ACEDrawingView/issues/8
// CGContextSetBlendMode(context, kCGBlendModeClear);
CGContextStrokePath(context);
CGContextRestoreGState(context);
}
In ACEDrawingView.m
- (void)configure
{
// init the private arrays
self.pathArray = [NSMutableArray array];
self.bufferArray = [NSMutableArray array];
// set the default values for the public properties
self.lineColor = kDefaultLineColor;
self.lineWidth = kDefaultLineWidth;
self.lineAlpha = kDefaultLineAlpha;
// set the transparent background
// set to white instead...
// https://github.com/acerbetti/ACEDrawingView/issues/8
self.backgroundColor = [UIColor whiteColor];
self.originalFrameYPos = self.frame.origin.y;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
}
- (void)updateCacheImage:(BOOL)redraw
{
// init a context
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
// draw white rectangle to use as background as workaround for
// https://github.com/acerbetti/ACEDrawingView/issues/8
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(context, self.bounds);
if (redraw) {
// erase the previous image
self.image = nil;
// load previous image (if returning to screen)
[[self.prev_image copy] drawInRect:self.bounds];
// 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();
}
from acedrawingview.
@0xPr0xy 's code wouldn't solve it when the drawingView load a UIImage as background, Just to make it clear.
from acedrawingview.
In My project i can change the background color when i am drawing,any body resolve this issue?? please explain
from acedrawingview.
Related Issues (20)
- hideHandle() HOT 2
- Text label(ACEDrawingLabelView) missing after save image HOT 6
- Texture support HOT 1
- change font and color for existing text? HOT 2
- Custom Shapes HOT 1
- Having the ability to store the drawn paths and load them into the view when app is loaded HOT 2
- Play back support
- Clear doesn't actually clear HOT 2
- Start editing when user lands on Drawing View
- Drawing view is not supporting orientation. HOT 1
- How to create brush tool? HOT 2
- predict the pressure sensitivity of the user's finger to define the thickness of the brush
- Draggable textview position problem HOT 2
- Is it possible to select and and delete any drawing object ?
- Support for brush textures? HOT 1
- How to get the line position?
- Can I get the bounding box containing only drawing ? HOT 1
- "Invalid suffix '.1' on floating constant" HOT 4
- latency issues
- Semantic Issues Warn "Method prev_image, setPrev_image deplecated here". HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from acedrawingview.