我是 Swift 的新手。我在 Playground 中创建了一个运行配速计算器作为实验,它运行得很好,但我很难弄清楚如何将它连接到 UI。
目前我特别困扰的事情:
- 将文本字符串转换为 Int 标签
- 进行计算的函数是否在 IBAction 中?
Playground 代码
import UIKit
func PaceCalculator (minutes:Double, seconds:Double, distance:Double) -> Double{
return ((minutes*60) + seconds) / distance
}
var paceInSeconds = PaceCalculator(28, 26, 10.1)
var paceInMinutes = paceInSeconds / 60
var roundedMinutes = Double(floor(paceInMinutes))
var decimalSeconds = paceInMinutes - roundedMinutes
var intPace = Int(floor(roundedMinutes))
var seconds = Int(floor(decimalSeconds * 60))
println("Your average pace is \(intPace):\(seconds)/km")
Swift 代码不完整
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func calculatePaceButton(sender: UIButton) {
}
@IBOutlet weak var minutesTextField: UITextField!
@IBOutlet weak var distanceTextField: UITextField!
@IBOutlet weak var paceLabel: UILabel!
}
Storyboard
免责声明:我也没有编程经验。因此,请谨慎对待术语和解释。)
最佳答案
希望这对您有用:
您没有将 secondsTextField
添加为 IBOutlet
,请也检查一下。
class ViewController: UIViewController {
@IBOutlet weak var minutesTextField: UITextField!
@IBOutlet weak var distanceTextField: UITextField!
@IBOutlet weak var paceLabel: UILabel!
@IBOutlet weak var secondsTextField: UITextField!
@IBAction func calculatePaceButton(sender: UIButton) {
var paceInSeconds = PaceCalculator((minutesTextField.text as NSString).doubleValue, seconds: (secondsTextField.text as NSString).doubleValue, distance: (distanceTextField.text as NSString).doubleValue)
var paceInMinutes = paceInSeconds / 60.0
var roundedMinutes = Double(floor(paceInMinutes))
var decimalSeconds = paceInMinutes - roundedMinutes
var intPace = Int(floor(roundedMinutes))
var seconds = Int(floor(decimalSeconds * 60))
paceLabel.text = "\(intPace)"
}
func PaceCalculator (minutes:Double, seconds:Double, distance:Double) -> Double{
return ((minutes*60) + seconds) / distance
}
}
关于swift - Swift 中的运行配速计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422722/