【问题标题】:stop animation after one repeat重复一次后停止动画
【发布时间】:2012-06-30 18:58:20
【问题描述】:

我创建了一个包含 2 个图像的数组,然后进行动画处理,一切正常。但现在我希望动画在重复一次后停止,我的意思是动画将从第一张图像开始,移动到第二张并停止(第二张图像将保留在我的 imageview 上)。我该怎么做? 这是我的代码:

    UIImage *mistakeOne = [UIImage imageNamed:@"Xmark.png"];
    UIImage *mistakeOneB = [UIImage imageNamed:@"XmarkWhite.png"];
    NSMutableArray *animation = [[NSMutableArray alloc] initWithObjects:mistakeOne, mistakeOneB , nil];
    [mistakeNumberOne setAnimationImages:animation];
    mistakeNumberOne.animationDuration = 5.0;
    [mistakeNumberOne startAnimating]

谢谢!

【问题讨论】:

    标签: objective-c xcode animation uiimageview


    【解决方案1】:

    假设errorNumberOne 是UIImageView

    [mistakeNumberOne animationRepeatCount:1];
    

    如果要在动画后保留图像,请在动画前的 UIImageview 中设置所需的图像:

    mistakeNumberOne.image = myDesiredImage;
    

    动画结束后会显示图片。

    把它们放在一起:

     UIImage *mistakeOne = [UIImage imageNamed:@"Xmark.png"];
     UIImage *mistakeOneB = [UIImage imageNamed:@"XmarkWhite.png"];
     NSMutableArray *animation = [[NSMutableArray alloc] initWithObjects:mistakeOne, mistakeOneB , nil];
     [mistakeNumberOne setAnimationImages:animation];
     mistakeNumberOne.animationDuration = 5.0;
     [mistakeNumberOne animationRepeatCount:1];
     mistakeNumberOne.image = mistakeOneB;
     [mistakeNumberOne startAnimating];
    

    【讨论】:

    • 第一个图像的动画层,然后显示第二个图像,然后我的图像视图(包含我的动画)消失(我没有看到任何图像)。
    【解决方案2】:

    Pfitz 的回答非常适合制作动画。但是,对于这种特定情况,您只有两个图像并且您只需要在它们之间“交换”它们可能更简单地在延迟后更改图像。

    -(void)swapImage {
    
          [mistakeNumberOne setImage:mistakeOneB];
    }
    

    然后延迟swapImage:

    [self performSelector:@selector(swapImage) withObject:nil afterDelay:5.0];
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 2014-05-16
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多