两种设置按钮初始状态的方法的区别
Difference between two ways of setting a button's initial state
我发现我有两种设置按钮初始 "enabled" 属性 值的方法。第一个:实用程序 -> 按钮 -> 状态配置。第二个在 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
}
}
所以,有实际区别吗?还是说到底是一样的?
谢谢。
当您通过 Interface Builder 配置 属性 时,执行配置的任务由读取相应故事板或 NIB 文件的库执行。这是在处理接口描述文件的内容时完成的,您无需编写任何额外的代码。
当您通过重写 viewWillAppear
方法配置 属性 时,将在您的代码中执行配置。
配置完成后,无法区分两者:结果看起来一样,因为按钮处于相同状态。在两者之间做出决定的一般经验法则如下:
- 当您以可视方式定义 UI 元素时,您应该在编辑器中设置尽可能多的属性。
- 当您可视化地定义了一个 UI 元素,但 属性 的值在设计时是未知的(例如,因为您需要在决定是否启用一个文件之前检查一个文件按钮或不)您需要以编程方式配置 属性。
- 当您以编程方式定义 UI 元素时,您别无选择,只能以编程方式设置属性。
我发现我有两种设置按钮初始 "enabled" 属性 值的方法。第一个:实用程序 -> 按钮 -> 状态配置。第二个在 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
}
}
所以,有实际区别吗?还是说到底是一样的?
谢谢。
当您通过 Interface Builder 配置 属性 时,执行配置的任务由读取相应故事板或 NIB 文件的库执行。这是在处理接口描述文件的内容时完成的,您无需编写任何额外的代码。
当您通过重写 viewWillAppear
方法配置 属性 时,将在您的代码中执行配置。
配置完成后,无法区分两者:结果看起来一样,因为按钮处于相同状态。在两者之间做出决定的一般经验法则如下:
- 当您以可视方式定义 UI 元素时,您应该在编辑器中设置尽可能多的属性。
- 当您可视化地定义了一个 UI 元素,但 属性 的值在设计时是未知的(例如,因为您需要在决定是否启用一个文件之前检查一个文件按钮或不)您需要以编程方式配置 属性。
- 当您以编程方式定义 UI 元素时,您别无选择,只能以编程方式设置属性。