gpt4 book ai didi

ios - 如何用动画改变导航栏的背景图片?

转载 作者:行者123 更新时间:2023-11-28 18:08:43 24 4
gpt4 key购买 nike

我正在使用我们所有人都知道的动画,以动画方式更改导航栏的背景图像,并在很短的时间内将其从半透明(我将其设置为默认)更改为(蓝色主题)。

UIView.animate(withDuration:0.5, 
delay: 0,
option: UIViewAnimationOptions.curveEaseOut,
animations: {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
}, completion: nil)

但是动画没有效果,但是nav bar的背景图改成功了,不知道为什么!!

有什么想法吗?

最佳答案

您需要在动画 block 中调用 layoutIfNeeded(),例如

UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: { 
self.navigationController?.navigationBar.barTintColor = .blue
self.navigationController?.navigationBar.layoutIfNeeded()
}, completion: nil)

更改背景图片的更新

这段代码对我有用:

let animation = CATransition()
animation.duration = 0.5
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
animation.type = kCATransitionFade

navigationController?.navigationBar.layer.add(animation, forKey: nil)

UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(named: "your-image-name"), for: .default)
}, completion: nil)

关于ios - 如何用动画改变导航栏的背景图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44800715/

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