在Swift中动态计算步伐

时间:2015-07-21 18:35:35

标签: ios swift calculator dynamically-generated

我在下面有这个代码。当我填写字段时,如何动态计算速度,而不必通过点击Calculate Pace按钮手动计算它?

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var minTextField: UITextField!
    @IBOutlet weak var secTextField: UITextField!
    @IBOutlet weak var distTextField: UITextField!
    @IBOutlet weak var paceLabel: UILabel!


    func paceInSeconds (minutes:Double, seconds: Double, distance: Double) -> Double {
        return ((minutes*60) + seconds) / distance
    }


    @IBAction func paceCalculator(sender: UIButton) {
        var paceMinutes = paceInSeconds(((minTextField.text as NSString).doubleValue, seconds: (secTextField.text as NSString).doubleValue, distance: (distTextField.text as NSString).doubleValue)) / 60

        var roundedPaceMinutes = Double(floor(paceMinutes))
        var decimalPaceSeconds = paceMinutes - roundedPaceMinutes
        var intPaceMinutes = Int(floor(roundedPaceMinutes))
        var paceSeconds = Int(floor(decimalPaceSeconds * 60))
        var paceSecondsZero = String(format: "%02d", paceSeconds)

        paceLabel.text = "\(intPaceMinutes):\(paceSecondsZero)/km"
    }    
}

这是故事板UI: enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用UITextFieldDelegate协议的各种功能。如果您将视图控制器指定为文本字段的委托,则它将能够根据文本字段中的更改进行操作。

在您的情况下,您应该实施textField:shouldChangeCharactersInRange:replacementString:功能。