Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Build a Simple iPhone App (iOS7) Animating and Intercepting Events Image Based Animation

My animation doesn't work!

My animation doesn't work here is my code :

@implementation JEEPViewController

  • (void)viewDidLoad

{ [super viewDidLoad];

self.CrystalBall = [[JEEPCrystalBall alloc]init];

self.backgroundImageView.animationImages = [[NSArray alloc] initWithObjects:

                                            [UIImage imageNamed:@"CB00001"],
                                            [UIImage imageNamed:@"CB00002"],
                                            [UIImage imageNamed:@"CB00003"],
                                            [UIImage imageNamed:@"CB00004"],
                                            [UIImage imageNamed:@"CB00005"],
                                            [UIImage imageNamed:@"CB00006"],
                                            [UIImage imageNamed:@"CB00007"],
                                            [UIImage imageNamed:@"CB00008"],
                                            [UIImage imageNamed:@"CB00009"],
                                            [UIImage imageNamed:@"CB00010"],
                                            [UIImage imageNamed:@"CB00011"],
                                            [UIImage imageNamed:@"CB00012"],
                                            [UIImage imageNamed:@"CB00013"],
                                            [UIImage imageNamed:@"CB00014"],
                                            [UIImage imageNamed:@"CB00015"],
                                            [UIImage imageNamed:@"CB00016"],
                                            [UIImage imageNamed:@"CB00017"],
                                            [UIImage imageNamed:@"CB00018"],
                                            [UIImage imageNamed:@"CB00019"],
                                            [UIImage imageNamed:@"CB00020"],
                                            [UIImage imageNamed:@"CB00021"],
                                            [UIImage imageNamed:@"CB00022"],
                                            [UIImage imageNamed:@"CB00023"],
                                            [UIImage imageNamed:@"CB00024"],
                                            [UIImage imageNamed:@"CB00025"],
                                            [UIImage imageNamed:@"CB00026"],
                                            [UIImage imageNamed:@"CB00027"],
                                            [UIImage imageNamed:@"CB00028"],
                                            [UIImage imageNamed:@"CB00029"],
                                            [UIImage imageNamed:@"CB00030"],
                                            [UIImage imageNamed:@"CB00031"],
                                            [UIImage imageNamed:@"CB00032"],
                                            [UIImage imageNamed:@"CB00033"],
                                            [UIImage imageNamed:@"CB00034"],
                                            [UIImage imageNamed:@"CB00035"],
                                            [UIImage imageNamed:@"CB00036"],
                                            [UIImage imageNamed:@"CB00037"],
                                            [UIImage imageNamed:@"CB00038"],
                                            [UIImage imageNamed:@"CB00039"],
                                            [UIImage imageNamed:@"CB00040"],
                                            [UIImage imageNamed:@"CB00041"],
                                            [UIImage imageNamed:@"CB00042"],
                                            [UIImage imageNamed:@"CB00043"],
                                            [UIImage imageNamed:@"CB00044"],
                                            [UIImage imageNamed:@"CB00045"],
                                            [UIImage imageNamed:@"CB00046"],
                                            [UIImage imageNamed:@"CB00047"],
                                            [UIImage imageNamed:@"CB00048"],
                                            [UIImage imageNamed:@"CB00049"],
                                            [UIImage imageNamed:@"CB00050"],
                                            [UIImage imageNamed:@"CB00051"],
                                            [UIImage imageNamed:@"CB00052"],
                                            [UIImage imageNamed:@"CB00053"],
                                            [UIImage imageNamed:@"CB00054"],
                                            [UIImage imageNamed:@"CB00055"],
                                            [UIImage imageNamed:@"CB00056"],
                                            [UIImage imageNamed:@"CB00057"],
                                            [UIImage imageNamed:@"CB00058"],
                                            [UIImage imageNamed:@"CB00059"],
                                            [UIImage imageNamed:@"CB00060"],nil];

self.backgroundImageView.animationDuration = 2.5f;

self.backgroundImageView.animationRepeatCount = 1;

}

  • (void)didReceiveMemoryWarning

{ [super didReceiveMemoryWarning];

}

pragma mark Prediction

-(void) makePrediction{

[self.backgroundImageView startAnimating];

self.PredictionLabel.text = [self.CrystalBall randomPrediction];

[UIView animateWithDuration:3.0 animations:^{self.PredictionLabel.alpha = 1.0f; }];

3 Answers

Peter Simpson
PLUS
Peter Simpson
Courses Plus Student 15,526 Points

The code you have posted looks good.

Are you calling 'makePrediction' in 'touchesEnded' like so - ''' -(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

[self makePrediction];

} '''

Yes I have. I copy pasted your code and it still doesn't work.

Peter Simpson
PLUS
Peter Simpson
Courses Plus Student 15,526 Points

When you touch the screen what happens, does the prediction label appear?

I just copied your code and ran it, it worked fine. What does your header file look like?

Did you import the image assets correctly, have you tried deleting them and importing them again?

this is my header file :

@class JEEPCrystalBall; @interface JEEPViewController : UIViewController @property (strong, nonatomic) IBOutlet UILabel *PredictionLabel; @property (strong, nonatomic) JEEPCrystalBall *CrystalBall;

  • (void) makePrediction; @property (strong, nonatomic) IBOutlet UIImageView *backgroundImageView;

@end

The prediction label changes it just doesn't animate. The background image stays the same.

Peter Simpson
PLUS
Peter Simpson
Courses Plus Student 15,526 Points

All your the code you have posted works for me, I think there must be an issue either within your storyBoard or with the IBOutlet, if you have deleted an IBOutlet from your header file and added another one they can get confused because you need to delete it at the storyBoard as well. Normally that would give you an error message though.

In storyBoard, have you ticked the box for user interaction enabled in you view?