【问题标题】:how to get label to constantly display int (swift4)如何让标签不断显示int(swift4)
【发布时间】:2018-12-23 07:35:45
【问题描述】:
我想知道是否有办法让标签显示int。基本上覆盖所有的 if 语句。我知道我可以做这个巫婆 if 语句,但我只是问这个问题,看看我是否可以编写更有效的代码。
class ViewController: UIViewController {
var time = -3
@IBOutlet var label: UILabel!
@IBAction func method2() {
time += 1
label.text = String(time)
}
@IBAction func method1() {
time += 1
label.text = String(time)
}
}
您在这段代码中看到 label.text = String(time) 重复了两次。我正在尝试查看是否可以编写此代码以使其仅出现一次。
【问题讨论】:
标签:
swift
overriding
swift4
constants
var
【解决方案1】:
有几种方法可以做到这一点,你可以创建一个额外的方法,像这样:
class ViewController: UIViewController {
var time = -3
@IBOutlet var label: UILabel!
@IBAction func method1() {
self.incrementAndDisplayTime()
}
@IBAction func method2() {
self.incrementAndDisplayTime()
}
private func incrementAndDisplayTime() {
self.time += 1
label.text = String(time)
}
}
或者在设置时间时显示时间:
class ViewController: UIViewController {
var time = -3 {
didSet {
self.label.text = String(time)
}
}
@IBOutlet var label: UILabel!
@IBAction func method1() {
self.time += 1
}
@IBAction func method2() {
self.time += 1
}
}
或者从另一个方法调用一个方法:
class ViewController: UIViewController {
var time = -3
@IBOutlet var label: UILabel!
@IBAction func method1() {
self.method2()
}
@IBAction func method2() {
time += 1
label.text = String(time)
}
}