gpt4 book ai didi

ios - FadeIn 动画不能快速工作 2

转载 作者:可可西里 更新时间:2023-11-01 00:58:36 24 4
gpt4 key购买 nike

下面是我的代码。淡出效果很好。然而,淡入淡出效果不是动画。我无法解决这个问题。感谢所有帮助我的人。 Storyboard中的 Alpha 设置为 0

extension UIView {

func fadeIn(duration: NSTimeInterval = 3.0, delay: NSTimeInterval = 0.0, completion: ((Bool) -> Void) = {(finished: Bool) -> Void in}) {
UIView.animateWithDuration(duration, delay: delay, options: UIViewAnimationOptions.CurveLinear, animations: {
self.alpha = 1.0
}, completion: completion) }

func fadeOut(duration: NSTimeInterval = 2.0, delay: NSTimeInterval = 3.0, completion: (Bool) -> Void = {(finished: Bool) -> Void in}) {
UIView.animateWithDuration(duration, delay: delay, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.alpha = 0.0
}, completion: completion)
}

}

最佳答案

在调用 UIView.animationWithDuration 之后直接调用它会取消之前的动画,即使您在函数调用中提供了延迟也是如此。但是,您可以像@Daniel Hall 建议的那样使用完成功能:

myView.fadeIn() {  _ in
myView.fadeOut()
}

或者,如果您使用不同的方法执行 fadeOut,该方法恰好在 fadeIn 之后由某个事件触发,您可以使用 dispatch_after 在延迟时间(在您的情况下应该是 fadeIn 持续时间)之后执行

let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC)))
dispatch_after(delayTime, dispatch_get_main_queue()) {
self.myView.fadeOut()
}

关于ios - FadeIn 动画不能快速工作 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39048988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com