SwiftyDraw is a simple, lightweight drawing framework written in Swift. SwiftyDraw is built using Core Gaphics and is very easy to implement.
- iOS 8.0+
- Swift 3.0
SwiftyDraw is available under the BSD license. See the LICENSE file for more info.
SwiftyDraw is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "SwiftyDraw"
Simply copy the contents of the Source folder into your project.
Using SwiftyDraw is very simple:
Simply create a SwiftyDrawView and add it to your View Controller:
let drawView = SwiftyDrawView(frame: self.view.frame)
self.view.addSubview(drawView)
By default, the view will automatically respond to touch gestures and begin drawing. The default color is black.
To disable drawing, simply set the drawingEnabled
property to false:
drawView.drawingEnabled = false
The color of a line stoke can be changed by adjusting the lineColor
property. SwiftyDraw accepts any UIColor:
drawView.lineColor = UIColor.red
or
drawView.lineColor = UIColor(colorLiteralRed: 0.75, green: 0.50, blue: 0.88, alpha: 1.0)
The with of a line stroke can be changed by adjusting the lineWidth
property. SwiftyDraw accepts any positive CGFloat:
drawView.lineWidth = CGFloat(5.0)
The opacity of a line stoke can be changed by adjusting the lineOpacity
property. SwiftyDraw accepts a CGFloat between 0. and 1.0:
drawView.lineOpacity = CGFloat(0.5)
SwiftyDraw has the option to clear the last line segment. Simply call the removeLastLine
function:
drawView.removeLastLine()
This can be called several times, or until the canvas is clear.
If you wish to clear the entire canvas, simply call the clearCanvas
function:
drawView.clearCanvas()
SwiftyDraw has delegate functions to notify you when a user is interacting with a SwiftDrawView. To access these delegate methods, simply add your View Controller as the SwiftyDrawViewDelegate
:
class ViewController: UIViewController, SwiftyDrawViewDelegate
There are four optional delegate methods:
func SwiftyDrawDidBeginDrawing(view: SwiftyDrawView) {
// Called when the SwiftyDrawView detects touches have begun.
}
func SwiftyDrawIsDrawing(view: SwiftyDrawView) {
// Called when the SwiftyDrawView detects touches are currrently occuring.
// Will be called multiple times.
}
func SwiftyDrawDidFinishDrawing(view: SwiftyDrawView) {
// Called when the SwiftyDrawView detects touches have ended for the particular line segment
}
func SwiftyDrawDidCancelDrawing(view: SwiftyDrawView) {
// Called if SwiftyDrawView detects issues with the gesture recognizers and cancels the drawing
}
If you have any questions, requests, or enhancements, feel free to submit a pull request, create an issue, or contact me in person:
Andrew Walz andrewjwalz@gmail.com