条件向下转换为CoreFoundation类型'CGColor'将始终成功

时间:2018-02-07 06:50:43

标签: swift xcode uikit uicolor

当我调用以下函数时,我得到2个错误:

  

1.条件向下转换为CoreFoundation类型'CGColor'将始终成功

     

2.Cannot分配'CGColor'类型的值?输入'UIColor?'

我刚刚开始,我使用Swiftify将其从旧的目标C代码转换。我希望颜色循环,它在ViewDidLoad方法调用。

由于

func doBackgroundColorAnimation() {

    var i: Int = 0
    let colors = [UIColor.green, UIColor.yellow, UIColor.orange, UIColor.red]

    if i >= colors.count {
        i = 0
    }
    UIView.animate(withDuration: 2.0, animations: {() -> Void in
        view.backgroundColor = colors[i] as? CGColor
    }, completion: {(_ finished: Bool) -> Void in
        i
        self.doBackgroundColorAnimation()
    })
}

1 个答案:

答案 0 :(得分:0)

以下是代码段中的许多错误:

1:您似乎想要指定颜色:

您只需按colors[i].cgColor

指定颜色对象即可

此外,如果您想要来自UICooor的CGColor,请通过UIKit -> Drawing -> UIColor

获取

2:注意:

  

UIColor类并没有从CGColor继承它为什么会这样做   无法从UIColor中投降。

继承 i

3:从完成中删除self.view.backgroundColor

4:在动画区块中添加自己{{1}}