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

Abdulaziz Alhomaidhi
Abdulaziz Alhomaidhi
2,047 Points

my crystal ball background image doesn't change

I followed every step in the video but my background doesn't change, what could Have I done wrong? here is my code: //.h file:

import <UIKit/UIKit.h>

@class AHCrystalBall; @interface AHViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *predictionsLabel; @property (strong, nonatomic) AHCrystalBall *crystalBall;

@property (strong, nonatomic) IBOutlet UIImageView *animatedBackground;

-(void) makePrediction; @end

//.m file: // // AHViewController.m // test_crystalBall // // Created by Abdulaziz Alhomaidhi on 6/30/14. // Copyright (c) 2014 FULLUSERNAME. All rights reserved. //

import "AHViewController.h"

import "AHCrystalBall.h"

@interface AHViewController ()


@implementation AHViewController

  • (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib.

    self.crystalBall = [[AHCrystalBall alloc]init];


  • (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; self.animatedBackground.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.animatedBackground.animationDuration = 2.5f; self.animatedBackground.animationRepeatCount = 1; }

-(void) makePrediction { [self.animatedBackground startAnimating]; self.predictionsLabel.text = [self.crystalBall randomPredictions];


// Motion/shake methods are here -(void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { self.predictionsLabel.text = nil; }

-(void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {

if (motion == UIEventSubtypeMotionShake) {
    [self makePrediction];



-(void) motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event { NSLog(@"motion cancelled"); }

// Touch methods are here

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { self.predictionsLabel.text = nil; }

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [self makePrediction]; }


1 Answer

David Kaneshiro Jr.
David Kaneshiro Jr.
29,247 Points

It looks like you've put your self.animatedBackground.animationImages, self.animatedBackground.animationDuration, and self.animatedBackground.animationRepeatCount in the didReceiveMemoryWarning method instead of the viewDidLoad method. Therefore none of those properties are being set unless your app receives a memory warning.