ios - ImageView 动画步骤

标签 ios animation uiimageview

我有一个小棋盘游戏,除了向对手展示最后一步外,一切都已完成。

我想做的是:

第1步:隐藏所有碎片

第二步:动画移动

第三步:再次显示现有作品

我已经尝试过,

[UIView animateWithDuration:5.00 delay:0.5
                        options:UIViewAnimationOptionCurveEaseOut //4
                     animations:^{

                         for (int i = 0; i<[_piecePlayer1 count]; i++) {
                         [[_piecePlayer1 objectAtIndex:i] hide];
                         [[_piecePlayer2 objectAtIndex:i] hide];

                         }


                     }
                     completion:^(BOOL finished){


}];

隐藏就是这样完成的。

-(void)hide{

    CATransition *animation = [CATransition animation];
    animation.type = kCATransitionFade;
    animation.duration = 0.4;
    [self.layer addAnimation:animation forKey:nil];

    self.hidden = YES;
}

问题:

第 1 步工作正常,但如果我跳过第 2 步并只是尝试在完成 block 中显示片段,即使我放置了一个带有延迟的嵌套动画 block ,它也会立即出现。

我如何逐步实现这一点,在第一个动画完成后执行其他动画?

感谢 danielquokka 和 特别感谢这个Repeat Animation

最佳答案

我认为核心问题是隐藏属性不可设置动画。而是使用可以动画的 alpha 属性。但我不明白你为什么要在这里使用 CATransition。以下代码将淡出片段,短暂延迟,然后淡入。

[UIView animateWithDuration:5.00 
                      delay:0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                         for (int i = 0; i<[_piecePlayer1 count]; i++) {
                             _piecePlayer1[i].alpha = 0.0;
                             _piecePlayer2[i].alpha = 0.0;
                         }
                     }
                     completion:^(BOOL finished){
                        [UIView animateWithDuration:5.00 
                                              delay:0.5
                                            options:UIViewAnimationOptionCurveEaseIn
                                         animations:^{
                                                for (int i = 0; i<[_piecePlayer1 count]; i++) {
                                                    _piecePlayer1[i].alpha = 1.0;
                                                    _piecePlayer2[i].alpha = 1.0;
                                                }
                                            }
                                            completion:^(BOOL finished){}
                        }];

}];

关于ios - ImageView 动画步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26943291/

相关文章:

swift - UIImageView 以编程方式创建,然后旋转手机?

ios - 在iOS App中, Controller 未点击屏幕右侧

ios - 切换方向时从堆栈 View 中删除的元素

javascript - 我不明白为什么我的退出菜单动画不起作用

ios - 如何以编程方式在 Swift 中使用 UISlider 更改 UIImageView 中指定的图像大小

ios - Swift:编辑从相机拍摄的图像以填充 UIImageView

ios - 在 iOS 7 中禁用 Core Data 中的 iCloud(也称为将持久存储文件迁移到本地)

ios - 返回 Int 的可选链接

javascript - 如何实现更逼真的粒子漂 float 画?

javascript - Phaser3 旋转动画