我在下面的代码。如何在我填写字段时动态计算步速,而不必通过点击“计算步速”按钮手动计算步速?

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:

最佳答案

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

在您的情况下,您应该实现 textField:shouldChangeCharactersInRange:replacementString: 函数。

关于ios - 在Swift中动态计算步速,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31547021/

10-11 21:28