2015-09-07 57 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。 –