Graphics Reference
In-Depth Information
@implementation
DrawingView
+ (
Class
)layerClass
{
//this makes our view create a CAShapeLayer
//instead of a CALayer for its backing layer
return
[
CAShapeLayer
class
];
}
- (
void
)awakeFromNib
{
//create a mutable path
self
.
path
= [[
UIBezierPath
alloc
]
init
];
//configure the layer
CAShapeLayer
*shapeLayer = (
CAShapeLayer
*)
self
.
layer
;
shapeLayer.
strokeColor
= [
UIColor
redColor
].
CGColor
;
shapeLayer.
fillColor
= [
UIColor
clearColor
].
CGColor
;
shapeLayer.
lineJoin
=
kCALineJoinRound
;
shapeLayer.
lineCap
=
kCALineCapRound
;
shapeLayer.
lineWidth
=
5
;
}
- (
void
)touchesBegan:(
NSSet
*)touches withEvent:(
UIEvent
*)event
{
//get the starting point
CGPoint
point = [[touches
anyObject
]
locationInView
:
self
];
//move the path drawing cursor to the starting point
[
self
.
path
moveToPoint
:point];
}
- (
void
)touchesMoved:(
NSSet
*)touches withEvent:(
UIEvent
*)event
{
//get the current point
CGPoint
point = [[touches
anyObject
]
locationInView
:
self
];
//add a new line segment to our path
[
self
.
path
addLineToPoint
:point];
//update the layer with a copy of the path
((
CAShapeLayer
*)
self
.
layer
).
path
=
self
.
path
.
CGPath
;