iOS   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用UIViewPropertyAnimator按顺序制作UIView的alpha大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个想要在0.5秒后显示的UIView,并在0.5秒后再次隐藏,创建一个简单的动画.我的代码如下: let animation = UIViewPropertyAnimator.init(duration: 0.5, curve: .linear) { self.timerBACkground.alpha = 1 let transition = UIViewP
我有一个想要在0.5秒后显示的UIView,并在0.5秒后再次隐藏,创建一个简单的动画.我的代码如下:

let animation = UIViewPropertyAnimator.init(duration: 0.5,curve: .linear) {
        self.timerBACkground.alpha = 1
        let transition = UIViewPropertyAnimator.init(duration: 0.5,curve: .linear) {
            self.timerBACkground.alpha = 0
        }
        transition.startAnimation(afterDelay: 0.5)
    }
    animation.startAnimation()

当我测试它时,没有任何反应.我认为这是因为它们都在同一时间运行,这意味着它们相互抵消,但这不是“afterDelay”部分应该阻止的吗?

如果我单独运行它们,即从隐藏变为可见,或者从隐藏变为可见,它可以工作,但是当我尝试按顺序运行它时,它不起作用.

我的UIView不是不透明或隐藏的.

解决方法

您可以使用Timer,并在每个计时器刻度上添加出现/隐藏动画块到您的UIViewPropertyAnimatorobject.

这是一个代码库:

@IBOutlet weak var timerBACkground: UIImageView!

private var timer: Timer?
private var isShown = false
private var viewAnimator = UIViewPropertyAnimator.init(duration: 0.5,curve: .linear)

override func viewDidLoad() {
    super.viewDidLoad()
    viewAnimator.addAnimations {
        self.timerBACkground.alpha = 1
    }
    viewAnimator.startAnimation()
    isShown = true

    self.timer = Timer.scheduledTimer(timeInterval: 0.5,target: self,SELEctor: #SELEctor(self.startReversedAction),userInfo: nil,repeats: truE)
}

func startReversedAction() {
    // stop the prevIoUs animations block if it did not have time to finish its movement
    viewAnimator.stopAnimation(true)
    viewAnimator.addAnimations ({
        self.timerBACkground.alpha = self.isShown ? 0 : 1
    })
    viewAnimator.startAnimation()
    isShown  =  !isShown
}

我已经为dots jumpingdots jumping实现了非常相似的行为.

请随时查看以获取更多详细信息.

大佬总结

以上是大佬教程为你收集整理的ios – 使用UIViewPropertyAnimator按顺序制作UIView的alpha全部内容,希望文章能够帮你解决ios – 使用UIViewPropertyAnimator按顺序制作UIView的alpha所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。