2015-01-27 80 views
1

我发现我有两种方法来设置按钮初始“启用”属性值。第一个:实用程序 - >按钮 - >状态配置。第二个是内部ViewController.swift覆盖方法viewWillAppear设置按钮的初始状态的两种方式之间的区别

import UIKit 

    class ViewController: UIViewController { 

     @IBOutlet weak var myButton: UIButton! 

     override func viewDidLoad() { 
      super.viewDidLoad() 
      // Do any additional setup after loading the view, typically from a nib. 
     } 

     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 

     // RIGHT HERE 
     override func viewWillAppear(animated: Bool) { 

      myButton.enabled = true 
     } 
} 

那么,有没有实际的区别吗?或者最后他们是一样的?

谢谢。

+0

两者都给出相同的结果。 – 2015-01-27 00:57:33

回答

0

通过Interface Builder配置属性时,执行配置的任务由读取相应故事板或NIB文件的库执行。这是在处理接口描述文件的内容时完成的,而不必编写任何其他代码。

当您通过重写viewWillAppear方法来配置属性时,配置在您的代码中执行。

一旦执行配置,就无法区分两者:结果看起来相同,因为按钮处于相同状态。一个常见的经验法则如下:

  • 当您直观地定义UI元素时,应尽可能在编辑器中设置尽可能多的属性。
  • 当您直观地定义UI元素,但在设计时不知道该属性的值(例如,因为在决定是否启用按钮之前需要检查文件),您需要配置该属性编程。
  • 以编程方式定义UI元素时,除了以编程方式设置属性外,别无选择。
相关问题