如何用UITextField输入追加数组?

时间:2019-05-13 14:00:58

标签: arrays swift button uitextfield label

我分配了一个计算器来计算给定输入的平均数。 我需要接受并显示在range中输入的数字(介于0和100之间)(“添加”按钮)。并计算并显示平均值。

有一个UITextField,我在其中输入数字,然后按ADD按钮将其显示在label/textview中(不确定使用哪个)。

数字应附加到数组中,以便使用averageOf()函数。

我尝试显示数字,但是label代替了新数字,而不是添加了新数字。我很快就很陌生,不确定如何编码以仅接受一定范围的数字。

我的文本字段:

@IBOutlet weak var txtInput: UITextField!

添加按钮:

@IBAction func btnAdd(_ sender: UIButton) {
        let testScore = txtInput.text
        scoreDisplay.text = testScore
    }

数字的输出/显示应为,例如40, 23.6, 98.2, 74.4 我得到的只是数字的替换。

2 个答案:

答案 0 :(得分:1)

您应该使用+=而不是=(替换整个值)进行追加

scoreDisplay.text += ", \(testScore)"
scoreDisplay.text = scoreDisplay.trimmingCharacters(in: CharacterSet(charactersIn: " ,"))

修剪用于删除字符串中的第一个,

编辑

由于text的{​​{1}}属性为UILabel,因此您实际上不能使用Optional<String>。所以:

+=

答案 1 :(得分:0)

编辑:我发现了问题。 scoreDisplay.text和testScore.text都是可选的,因此您必须确保它们具有值。

@IBAction func btnAdd(_ sender: UIButton) {
   guard let testScore = txtInput.text, let scoreDisplay = scoreDisplay.text else  { return }
   scoreDisplay.text = scoreDisplay + testScore
  } 

此外,如果您想在每个数字的中间添加“,”:

@IBAction func btnAdd(_ sender: UIButton) {
   guard let testScore = txtInput.text, let scoreDisplay = scoreDisplay.text else  { return }
   scoreDisplay.text = "\(scoreDisplay), \(testScore)"
  }

PD:=仅将您的字符串替换为其他字符串,+ =追加新字符串。