UIImageView不会动画,仅静态图像

问题描述 投票:0回答:3

我的故事板上有一个UIImageView,该UIImageView链接到代码中的插座。运行代码时,它仅显示情节提要显示的静态图片,而不显示我以编程方式创建的动画。有什么想法吗?

for(int i=0; i<4; i++) {
    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"loading%d",i]];
    [self.images addObject:image];
}
self.loadingView.animationImages = self.images;
self.loadingView.animationDuration = 2;
self.loadingView.animationRepeatCount = 1;
[self.loadingView startAnimating];

注意:loadingView是UIImageView,图像是NSMutableArray。

ios objective-c animation uiimageview
3个回答
2
投票

如果要创建运行时数组,可以像这样使用。

  NSMutableArray *images = [[NSMutableArray alloc] init];

    for (int i = 1 ; i < 4; i++) {

        [images addObject:[UIImage imageNamed:[NSString stringWithFormat: @"loading%d.jpg", i]]];


    }

    self.loadingView.animationImages = images;
    self.loadingView.animationDuration = 2;
    self.loadingView.animationRepeatCount = 1;
    [self.loadingView startAnimating];

希望这对您有帮助。对我来说很好。


0
投票

问题是此行:

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"loading%d",i]]

格式字符串错误。您可能有名为的图片,例如loading1.png。但是您的格式字符串仅给出loading1。不适用于imageNamed:。因此,您需要修复格式字符串以提供图像的全名。

UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"loading%d.png",i]]

或其他。使用NSLog来确保图像名称正确无误!!

一种更好的方法是改用动画image,但是:

UIImage* im = [UIImage animatedImageNamed:@"loading" duration:2];

将自动找到所有的loading1.pngloading2.png等并创建图像并开始自动设置动画效果。


0
投票

我建议您像这样直接使用数组。

NSArray *images = [[NSArray alloc] initWithObjects:
                 [UIImage imageNamed:@"1.jpg"],
                 [UIImage imageNamed:@"2.jpg"],
                 nil];

self.loadingView.animationImages = images;
self.loadingView.animationDuration = 2;
self.loadingView.animationRepeatCount = 1;
[self.loadingView startAnimating];
© www.soinside.com 2019 - 2024. All rights reserved.