Graphics Reference
In-Depth Information
}
- (
void
)animate
{
//reset ball to top of screen
self
.ballView.
center
=
CGPointMake
(
150
,
32
);
//create keyframe animation
CAKeyframeAnimation
*animation = [
CAKeyframeAnimation
animation
];
animation.
keyPath
=
@"position"
;
animation.
duration
=
1.0
;
animation.
delegate
=
self
;
animation.
values
=
@[
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
32
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
268
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
140
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
268
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
220
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
268
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
250
)],
[
NSValue
valueWithCGPoint
:
CGPointMake
(
150
,
268
)]
]
;
animation.
timingFunctions
=
@[
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseIn
],
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseOut
],
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseIn
],
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseOut
],
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseIn
],
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseOut
],
[
CAMediaTimingFunction
functionWithName
:
kCAMediaTimingFunctionEaseIn
]
]
;
anima
tion.
keyTimes
=
@[@0.0
,
@0.3
,
@0.5
,
@0.7
,
@0.8
,
@0.9
,
@0.95
,
@1.0]
;
//apply animation
self
.ballView.
layer
.
position
=
CGPointMake
(
150
,
268
);
[
self
.ballView.
layer
addAnimation
:animation
forKey
:
nil
];