UIView动画背景淡出不起作用

时间:2016-12-04 12:15:03

标签: ios animation uiview

我制作了自己的自定义UIView,它在UIView的左上角显示了一个标签,以及一些边框。

在自定义UIView(AdventDoor)中,我创建了一个名为animateChanges()的方法。这就是方法中的内容:

func animateChanges()
{
    UIView.animate(withDuration: 1.5, animations: {
        self.layer.backgroundColor = UIColor.white.cgColor
    })        
}

这个视图的初始颜色是UIColor.red,我想要的是背景颜色在1.5秒内淡化为白色,然而,背景在没有动画的情况下立即跳转到白色。

这就是我的draw方法中的内容:

override func draw(_ rect: CGRect) {
    if(self.tag < 25)
    {
        doorNumber.text = "\(self.tag)"
    } else {
        doorNumber.text = "25"
    }
    self.addSubview(doorNumber)
}

如何使视图背景颜色从红色变为白色?我也尝试将UIView.animate更改为AdventDoor.animate

我还在self.backgroundColor = UIColor.clear代码之前添加了代码UIView.animation,由于某种原因,动画也可以运行。唯一的问题是,我希望它从红色变为白色而不是从白色淡化到白色。

1 个答案:

答案 0 :(得分:0)

通常它应该适用于视图。但如果您的观点基于UILabel,请查看此处:How to animate the background color of a UILabel?