【问题标题】:IOS animation finalizingIOS动画完成
【发布时间】:2012-02-06 23:05:18
【问题描述】:

我有一个应用程序可以将一些图像的 alpha 从 0 设置为 1 。如果我使用popToRootViewController 返回上一个视图,然后返回此视图,则动画会从我按下后退按钮时的位置继续。并且“动画电影”再次开始,而其他动画仍在进行中。两部电影同时播放。

我这样显示图像:

-(void)showStar2
{

    [UIView animateWithDuration:0.3f animations:^{
        [UIView setAnimationDelay:0.3];
        [stars[1] setAlpha:1];
        } completion:^(BOOL finished){
        [self showStar3];
    }];

当我按下后退按钮时,有没有办法停止动画过程?我试过[self.view.layer removeAllAnimations],但还是不行。

【问题讨论】:

    标签: ios animation


    【解决方案1】:

    您需要导入 QuartzCore.h 文件。

    #import <QuartzCore/QuartzCore.h>
    

    当你想停止动画时调用这个

    [CATransaction begin];
    [self.view.layer removeAllAnimations];
    [CATransaction commit];
    

    【讨论】:

    • 不起作用。如果我返回然后返回此视图,动画仍在显示。
    • 尝试从星星[1].layer中移除动画
    • 而不是使用块使用旧的uiview动画方法来提交动画,这应该可以工作
    【解决方案2】:

    在你创建你的starView之前放这个(不知道怎么叫)

    if (starView!=nil){
            [starView removeFromSuperview];
            [starView release];
            starView = nil;
        }
    starView = [[UIView alloc] initWithFrame:frame];
    

    这将在创建新图像之前删除您的图像。

    或者在您关闭视图时删除您的图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      相关资源
      最近更新 更多