Search code examples
iosobjective-cuiimageviewuiimagensarray

Loading images for animation in UIImageView - iOS


I have around 300 images to be loaded for animation the images are named loading001.png, loading002.png, loading003.png, loading004.png………loading300.png

I am doing it in the following way.

.h file

    #import <UIKit/UIKit.h>
    @interface CenterViewController : UIViewController  {
        UIImageView *imgView;
    }

    @end

.m file

@implementation CenterViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    imgView = [[UIImageView alloc] init];
    imgView.animationImages = [[NSArray alloc] initWithObjects:
                               [UIImage imageNamed:@"loading001.png"],
                               [UIImage imageNamed:@"loading002.png"],
                               [UIImage imageNamed:@"loading003.png"],
                               [UIImage imageNamed:@"loading004.png"],
                               nil];
}

- (IBAction)startAnimation:(id)sender{
    [imgView startAnimating];
}

@end

Is there a efficient way to load the images into a array. I had tried it with for loop but was not able to figure it out.


Solution

  • You may try out the following code to load images into an array in a better way

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        NSMutableArray *imgListArray = [NSMutableArray array];
        for (int i=1; i <= 300; i++) {
            NSString *strImgeName = [NSString stringWithFormat:@"loading%03d.png", i];
            UIImage *image = [UIImage imageNamed:strImgeName];
                if (!image) {
                    NSLog(@"Could not load image named: %@", strImgeName);
                }
                else {
                    [imgListArray addObject:image];
                }
            }
        imgView = [[UIImageView alloc] init];
        [imgView setAnimationImages:imgListArray];
    }