我在下面有这个代码。当我填写字段时,如何动态计算速度,而不必通过点击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:
答案 0 :(得分:1)
您可以使用UITextFieldDelegate
协议的各种功能。如果您将视图控制器指定为文本字段的委托,则它将能够根据文本字段中的更改进行操作。
在您的情况下,您应该实施textField:shouldChangeCharactersInRange:replacementString:
功能。