2015-09-07 41 views
2

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

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设置为橙色,则视图变为橙色。 我们可以得出结论,该层有效地位于视图的顶部,但渐变效果不佳。

回答

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

(不要对我做出判断)

ly.colors的类型[AnyObject],但预计CGColor对象。由于[AnyObject],Swift没有给出任何错误,但因为它需要[CGColor]而不工作。

+1

虽然这行代码可能会解决问题,但对于本网站的质量以及具有相同问题的未来用户来说,如何添加关于如何回答OP问题的简短说明会更好。请查看[答案]并欢迎来到Stack Overflow。 –