2015-11-06 132 views
0

我想以編程方式更改我的視圖的背景顏色,因爲稍後我將不得不根據用戶輸入切換顏色。我不知道爲什麼這不會改變背景顏色。爲什麼我的背景顏色不能在swift中改變?

class MainViewController: UIViewController { 

    @IBOutlet weak var rLabel: UILabel! 
    @IBOutlet weak var gLabel: UILabel! 
    @IBOutlet weak var bLabel: UILabel! 
    @IBOutlet weak var largeColorView: UIView! 



override func viewDidLoad() { 
    super.viewDidLoad() 
    func colorWithAlphaComponent(alpha: CGFloat) -> UIColor{ 
     let newColor = UIColor.init(red: 0.5, green: 0.8, blue: 1.0, alpha: alpha) 
     return newColor 
    } 
    print(largeColorView.backgroundColor) 
    print(colorWithAlphaComponent(1.0)) 
    largeColorView.backgroundColor! = colorWithAlphaComponent(1.0) 
    print(largeColorView.backgroundColor) 

    // Do any additional setup after loading the view. 
    } 
+0

這段代碼的工作,但這裏是你的代碼,改變顏色? – wj2061

+0

我還沒有創建它。此代碼並未改變我的背景色 – RBnoob

+0

嘗試在模擬器上運行 – wj2061

回答

1

第一個錯誤:您必須在viewDidLoad()方法之外實現該函數,但您需要調用它。 因此,你的代碼應該是這樣的:

override func viewDidLoad() { 
    super.viewDidLoad() 
    print(largeColorView.backgroundColor) 
    print(colorWithAlphaComponent(1.0)) 
    largeColorView.backgroundColor! = colorWithAlphaComponent(1.0) 
    print(largeColorView.backgroundColor) 
    } 

func colorWithAlphaComponent(alpha: CGFloat) -> UIColor{ 
    let newColor = UIColor.init(red: 0.5, green: 0.8, blue: 1.0, alpha: alpha) 
    return newColor 
} 

因此這行代碼會運行,因爲它調用的函數

largeColorView.backgroundColor! = colorWithAlphaComponent(1.0)