动画后无法在 UIIMageView 上存储图像

Posted

技术标签:

【中文标题】动画后无法在 UIIMageView 上存储图像【英文标题】:Unable to store Image on a UIIMageView after the animation 【发布时间】:2013-04-30 18:44:33 【问题描述】:

我有一堆 .png 文件,我应该在 1.05 秒内制作动画。动画执行后,我想让最后一个 .png 文件永久显示。我正在使用 UIIMageview IBOutlet 来保存动画。但是,动画执行后,图像就消失了,我在屏幕上看不到任何东西。

动画代码如下:

-(void)viewDidAppear:(BOOL)animated

[super viewDidAppear:animated];

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^
    [self loadArrayForTickAnimation];
);


    if (tickArray) 
        self.animationView.animationImages = tickArray;
        self.animationView.animationDuration = 1.05;
        self.animationView.animationRepeatCount = 1;
        [self.animationView startAnimating];

        [self performSelector:@selector(showFinalImage) withObject:nil afterDelay:1.2];
    

- (void)showFinalImage

     [self.animationView setImage:[UIImage imageNamed:@"check_37.png"]];

这里,check_1.png 到 check_37.png 是需要动画的文件。我将它们存储在一个名为“tickArray”的数组中,并使用 [self loadArrayForTickAnimation] 消息填充数组。最后,我必须将动画视图的 UIIMage 设置为 check_37.png

【问题讨论】:

【参考方案1】:

修好了!!!您需要在动画开始之前为 imageview 设置图像。所以,我会的

self.animationView.image = [UIImage imageNamed:@"check_37.png"];
if (tickArray) 
    self.animationView.animationImages = tickArray;
    self.animationView.animationDuration = 1.05;
    self.animationView.animationRepeatCount = 1;
    [self.animationView startAnimating];

终于成功了!!!

【讨论】:

以上是关于动画后无法在 UIIMageView 上存储图像的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 开始/完成动画后更改图像

确定 UIImageView 正在显示它的哪个动画图像?

UIImageView 的 startAnimating 会在动画完成后自行移除吗?

图像设置为零时UIImageView不重绘

使用叠加按钮为 UIImageView 设置动画

如何显示带有动画的 UIImageview?