【问题标题】:Looking to accept user input, and calculate a running total - Swift 5/Xcode希望接受用户输入,并计算总和 - Swift 5/Xcode
【发布时间】:2020-05-11 11:55:54
【问题描述】:

我是一名初学者,正在开发一款功能类似于高尔夫记分卡的应用。我的第一个问题是在尝试接受 9 个文本字段的(原型)系列中的用户输入,以便用户可以输入他们的分数,然后是最后一个不可编辑的 textView,它将显示 9 个孔的总数。我试图让它成为一个不断更新的运行总数。

我尝试将每个 textField 的输入传递到一个数组中,并将数组的总和返回到 textView,但仍然存在来自 textField 的数据类型是字符串的问题,因为我只会处理整数。

我笨拙的第一关如下——

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var holeOneScore: UITextField!
    @IBOutlet weak var holeTwoScore: UITextField!
    @IBOutlet weak var holeThreeScore: UITextField!
    @IBOutlet weak var holeFourScore: UITextField!
    @IBOutlet weak var holeFiveScore: UITextField!
    @IBOutlet weak var holeSixScore: UITextField!
    @IBOutlet weak var holeSevenScore: UITextField!
    @IBOutlet weak var holeEightScore: UITextField!
    @IBOutlet weak var holeNineScore: UITextField!
    @IBOutlet weak var totalForFrontNine: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

//MARK: Calculate Scores

    @IBAction func calculate(_ sender: Any) {

        let hole1:Int = Int(holeOneScore.text!)!
        let hole2:Int = Int(holeTwoScore.text!)!
        let hole3:Int = Int(holeThreeScore.text!)!
        let hole4:Int = Int(holeFourScore.text!)!
        let hole5:Int = Int(holeFiveScore.text!)!
        let hole6:Int = Int(holeSixScore.text!)!
        let hole7:Int = Int(holeSevenScore.text!)!
        let hole8:Int = Int(holeEightScore.text!)!
        let hole9:Int = Int(holeNineScore.text!)!

        let totalArray = [hole1, hole2, hole3, hole4, hole5, hole6, hole7, hole8, hole9]
        let totalScore = totalArray.reduce(0, +)

        totalForFrontNine.text = String(totalScore)
        print(totalForFrontNine!)


    }

它起作用了,但几乎没有。任何修改或完全刷新的想法都可以!我不依赖任何东西,因为我正在使用这个项目来教我基础知识。

在此先感谢您,干杯 - glassGarrett

【问题讨论】:

  • 使用 IBOutletCollection ... 而不是单个实体 ... 这将在 4-5 行中结束您的代码 .... 搜索 IBOutlet 集合

标签: ios swift


【解决方案1】:

就像@jawadali 提到的,使用IBOutletCollection。这是一个tutorial关于如何使用它。

至于其他问题,

...来自 textField 的数据类型是一个字符串,我只处理整数。

快速的解决方案是将文本字段的keyboardType 设置为UIKeyboardTypeNumberPad,或在Swift 中设置.numberPad

textField.keyboardType = .numberPad

或者在故事板中,

【讨论】:

    猜你喜欢
    • 2016-03-17
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    相关资源
    最近更新 更多