【问题标题】: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)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多