ios - 连续淡入淡出动画

标签 ios swift uiviewanimation

我正在尝试实现此动画,其中 UIButton 在用户保存文件时淡出。当按钮淡出时,复选标记图像的 UIImageView 代替按钮淡出。一旦 imageview 完全淡入,它就会淡出并且按钮淡入。

    UIView.animateWithDuration(0.60, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
        self.recButton.alpha = 0.0
        }, completion: {
            (value: Bool) in
            UIView.animateWithDuration(0.60, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
                self.checkView.alpha = 1.0
                }, completion: {
                    (value: Bool) in
                    UIView.animateWithDuration(0.60, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
                        self.checkView.alpha = 0.0
                        }, completion: {
                            (value: Bool) in
                            UIView.animateWithDuration(0.60, delay: 0.0, options: UIViewAnimationOptions.CurveEaseIn, animations: {
                                self.recButton.alpha = 1.0
                                self.recButton.enabled = true
                                }, completion: nil)
                    })
            })
    })

虽然上面的方法确实有效,但它并不像我希望的那样顺利。有没有更好的方法来解决这个问题?

最佳答案

你需要四个关键帧来制作你想要的动画:按钮淡出、图像淡入、图像淡出、按钮淡入。

let button: UIButton
let checkmarkImage: UIImageView

button.alpha = 1.0
checkmarkImage = 0.0

UIView.animateKeyframesWithDuration(2.4, delay: 0, options: .CalculationModeLinear, animations: {
  UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.25, animations: { 
    button.alpha = 0.0
  })
  UIView.addKeyframeWithRelativeStartTime(0.25, relativeDuration: 0.25, animations: {
    checkmarkImage.alpha = 1.0
  })
  UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.25, animations: {
    checkmarkImage.alpha = 0.0
  })
  UIView.addKeyframeWithRelativeStartTime(0.75, relativeDuration: 0.25, animations: {
    button.alpha = 1.0
  })
}, completion: nil)

这个问题引起了我的好奇——这个关键帧的东西很酷。

关于ios - 连续淡入淡出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38861602/

相关文章:

iphone - 使用 NSCopy 复制包含指针的自定义对象?

xcode - swift中修改对象的引用内容

ios - 重复动画重新启动按钮的位置

ios - 我的 react-native 应用程序的非公共(public) API 使用错误

ios - 如何在 Objective-C 中使用 for 循环创建 GridView (例如 9*9 网格、15*15 网格)

ios - 无法将类型 '()' 的值转换为预期的参数类型“[UIViewController]?

ios - 如何在 Firebase for iOS 应用程序中保存 "posts"(不是服务器 POST 但更像是公告板)

ios - 将自定义动画 UIView 属性与其他动画同步

ios - 在 iOS 中拖动时如何修改 UIVisualEffectView 的模糊度?

iphone - 动画 UITextField 以指示错误的密码