为什么我的背景颜色不会因为我在swift中的观点而改变?

时间:2015-11-06 17:48:23

标签: swift uiview uicolor

我正在尝试以编程方式更改我的视图的背景颜色,因为稍后我将根据用户输入切换颜色。我不知道为什么这不会改变背景颜色。

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.
  }

1 个答案:

答案 0 :(得分: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)