作为 Swift 编程的介绍,我正在尝试制作一个小型计算器应用程序。我在尝试创建加减按钮功能时遇到错误。按钮的作用是点击的时候,如果显示文字的值为> 0
在字符串的开头添加一个减号(即 8 ---> -8
,如果显示文本的值为 < 0
则将显示文本的值乘以负 1,并将显示文本值分配为字符串新号码。
我的问题是,当我第一次单击减号按钮时,它按预期工作,但是,当我第二次单击它时 ( < 0
),显示文本仍然在数字前保留减号。我的代码是:
@IBAction func pmButton(_ sender: Any) {
if toFloat(value: display.text!) < 0 {
display.text = NSNumber(value: (toFloat(value: display.text!) * -1)).stringValue
print(display.text!)
}
if toFloat(value: display.text!) > 0 {
display.text = "-" + display.text!
}
}
print(display.text!)
的值给出了正确的值(没有减号),但在实际标签上减号仍然存在。甚至当我向字符串添加一些错误值时也是如此,即
display.text = NSNumber(value: (toFloat(value: display.text!) * -1)).stringValue + "abc"
将导致 ( -8 ---> -8abc
)。
我还尝试添加 print(display.text!)
在我重新分配值之前(在第 4 行),它恢复到原来的负值。所以看起来像display.text
在函数中被赋值,但从未在函数外正确更新。
我敢肯定这是非常简单的事情,但似乎无法解决。
最佳答案
在您的第一个 if
block 中,您更改了 display.text
的值,以便也满足第二个 if
条件;只需使用 else if
来仅运行其中一个 block 。
关于ios - UILabel 文本变量未正确更新 - Swift 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51232091/