2015-11-06 133 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)