I’m creating an application where the user can draw a line on a screen from an object to the location they want to send it and the object will then follow the line to the final location. In order to do this, I’ve already created working methods to allow the user to draw the lines and then to store the coordinates of the line in a MutableArray. However, I’m having some trouble when I try to animate. As I’m pretty new to the iPhone OS, this could be a simple problem, but I haven’t been able to find a solution yet.
I am NOT using Bezier Paths as the user is drawing the line manually, I’m not drawing it programmatically.
Here’s the code that I’ve tried
-(void)animateButtonWasPressed
{
for (int f = 0; f < [cordArrayY count]; f++) {
NSString *newY = [cordArrayY objectAtIndex:f];
NSString *newX = [cordArray objectAtIndex:f];
[self myAnimate:newX :newY];
}
}
-(void)myAnimate:(NSString *)PntX :(NSString *)PntY
{
[UIView animateWithDuration:.5 animations:
^{
object.center = CGPointMake([PntX floatValue], [PntY floatValue]);
}];
}
SYNTAX:
object – the object I am trying to move
cordArray – the mutable array containing the x-coordinates
cordArrayY – the mutable array containing the y-coordinates
Everything else is either defined within the code or Apple methods
The problem: the object moves instantly from its original location directly to the final location. I get a NSLog which tells me this:
-[UIApplication endIgnoringInteractionEvents] called without matching -beginIgnoringInteractionEvents. Ignoring.
Any help would be appreciated!
I was finally able to solve this problem:
At first I tried to continue using the method that I had above. Lio’s advice to use the “completion” block was perfect, but as I needed it to loop for an undefined number of times, I would have to use a counter variable. iPhone block programming doesn’t allow the modification of external variables or the use of the _block declaration, so this didn’t work out for me.
However, I eventually created my entire animation using NSTimer in the method described here just using my array coordinates instead:
http://www.icodeblog.com/2008/10/28/iphone-programming-tutorial-animating-a-ball-using-an-nstimer/