UIView背景颜色动画用不同的颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIView背景颜色动画用不同的颜色相关的知识,希望对你有一定的参考价值。

我想用动画和周期中不同的颜色来改变UIVIew的背景颜色。但颜色并没有改变。这是我的代码:

UIView.animate(withDuration: 0.6, delay: 0.0, options:[.repeat, .autoreverse], animations: {
            self.backgroundColor = UIColor(red: self.getRedComponant(), green: self.getGreenComponant(), blue: self.getBlueComponant(), alpha: CGFloat(1.0))
        }, completion:nil)

请帮我弄清问题。

答案

.repeat每次重复都不会执行getColorComponent(),而是可以添加一个Timer

这对我有用:

 var timer = Timer()
    override func viewDidLoad() {
        super.viewDidLoad()
        timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true, block: { (timer) in
            UIView.animate(withDuration: 0.6, delay: 0.0,  animations: {
                self.view.backgroundColor = UIColor(displayP3Red: self.getRedComponant(), green: self.getGreenComponant(), blue: self.getBlueComponant(), alpha: 1)

            }, completion:nil)
        })
    }

    func getRedComponant() -> CGFloat {
        return CGFloat((arc4random() % 256)) / 255.0;


    }
    func getBlueComponant() -> CGFloat {
        return CGFloat((arc4random() % 256)) / 255.0;

    }
    func getGreenComponant() -> CGFloat {
        return CGFloat((arc4random() % 256)) / 255.0;

    }

以上是关于UIView背景颜色动画用不同的颜色的主要内容,如果未能解决你的问题,请参考以下文章

使用动画更改 UIView 背景颜色

UIView,动画背景颜色非常缓慢,挂起滚动视图(!)

iPhone:UIImage 背景颜色与 UIView 背景颜色不同

UiView背景颜色不同[重复]

Swift Uiview 背景动画不起作用

拆分不同颜色的自定义 UIView