Animate images in uiimageview

25,259

Solution 1

To download images from web service:

NSData *imageData = [NSData dataWithContentsOfURL:"*Url from web service*"];
UIImage *imageOne = [UIImage imageWithData:imageData];

likely download all images from web service and create an array like:

NSArray *imagesArray = [NSArray arrayWithObjects:imageOne...........,nil];

and use with little modification:

UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
animatedImageView.animationImages = imagesArray;
animatedImageView.animationDuration = 1.0f;
animatedImageView.animationRepeatCount = 0;
[animatedImageView startAnimating];
[self.view addSubview: animatedImageView];

Solution 2

Got a Perfect code for animation can automatically change images in image view in swift4

class ViewController: UIViewController {

var imgarray = [UIImage(named:"f1.png")!, 
                UIImage(named:"f2.png")!, 
                UIImage(named:"f3.png")!,  
                UIImage(named:"f4.png")!,
                UIImage(named:"f5.png")!, 
                UIImage(named:"index1.png")!,
                UIImage(named:"index2.png")!, 
                UIImage(named:"index3.png")!]

@IBOutlet weak var imgview: UIImageView!
override func viewDidLoad() {
    super.viewDidLoad()

    self.imgview.animationImages = imgarray
    self.imgview.animationDuration = 10.0
    self.imgview.animationRepeatCount = 0
    self.imgview.startAnimating()
    }
}

Solution 3

Swift

Assuming that imageView is added via storyboard

Intialize array:

self.imageArray = [UIImage(named:"Download_060.png")!,UIImage(named:"Download_061.png")!,UIImage(named:"Download_062.png")!,
                       UIImage(named:"Download_063.png")!,UIImage(named:"Download_064.png")!,UIImage(named:"Download_065.png")!,
                       UIImage(named:"Download_066.png")!,UIImage(named:"Download_067.png")!]

Add Code to animate on button action or as per required

 self.imgView.animationImages = self.imageArray
        self.imgView.animationDuration = 1.0
        self.imgView.animationRepeatCount = 0
        self.imgView.startAnimating()

Stop Animation

self.imgView.animationRepeatCount = 1 // IF Require once set this 1, 0 == infinite 

OR

self.imgView.stopAnimating()
Share:
25,259
user2515868
Author by

user2515868

Updated on February 18, 2020

Comments

  • user2515868
    user2515868 about 4 years

    How to animate the images from web service. I got the code to animate the images from bundle.How to load the images from the url an array

    That code is attached below

    UIImageView* animatedImageView = [[UIImageView alloc] initWithFrame:self.view.bounds];
    animatedImageView.animationImages = [NSArray arrayWithObjects:    
                                   [UIImage imageNamed:@"image1.gif"],
                                   [UIImage imageNamed:@"image2.gif"],
                                   [UIImage imageNamed:@"image3.gif"],
                                   [UIImage imageNamed:@"image4.gif"], nil];
    animatedImageView.animationDuration = 1.0f;
    animatedImageView.animationRepeatCount = 0;
    [animatedImageView startAnimating];
    [self.view addSubview: animatedImageView];
    
  • Groot
    Groot almost 11 years
    Just a side note: Make sure the downloading is not performed on the main thread.
  • Vinodh
    Vinodh almost 11 years
    no issues. But time takes for download . you have to wait patiently till images get downloaded
  • user2515868
    user2515868 almost 11 years
    Is it possible to change the background image of the uibutton in similar way
  • Vinodh
    Vinodh almost 11 years
    please ask your question clearly , you want to change after a button click or directly
  • MoDJ
    MoDJ over 9 years
    Just an FYI, but your code will crash the device if the images are too large using this approach. Holding all decoded image data is memory is not a good idea, do some more research to find out how to fix that.
  • Houman
    Houman over 8 years
    Crashes for me too. Needs a better solution
  • Faizal Nowshad KN
    Faizal Nowshad KN about 4 years
    Nothing its the answer To change images in a imageview automatically in a viewcontrol.