无法显示简单的CAGradientLayer

时间:2015-09-07 10:11:10

标签: ios swift

我只是想在我的视图控制器中显示一个简单的渐变。 此代码不起作用(视图保持白色)。

import UIKit
import QuartzCore

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let ly = CAGradientLayer()
        ly.frame = view.bounds
        ly.colors = [UIColor.orangeColor(), UIColor.blackColor()]
        ly.locations = [0.0, 1.0]
        println(view.bounds) // (0.0, 0.0, 320.0, 568.0)

        view.layer.addSublayer(ly)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

有趣的是,如果我将ly.backgroundColor设置为橙色,则视图会变为橙色。 我们可以得出结论,图层有效地位于视图之上,但渐变无效。

1 个答案:

答案 0 :(得分:5)

ly.colors = [UIColor.orangeColor().CGColor, UIColor.blackColor().CGColor]

(不要评价我)

ly.colors的类型为[AnyObject],但需要CGColor对象。由于[AnyObject],Swift没有给出任何关于此的错误,但由于它需要[CGColor]而无法正常工作。