首页 文章

Swift:按下按钮时编辑Label的值

提问于
浏览
0

我正在尝试学习Swift,我正在玩变量的基础知识 . 我创建了一个应用程序,当你按下一个按钮时,标签的值会改变,而当添加1的按钮工作时,减去一个按钮的按钮不会 . 如果我更改第一个按钮(plusone)以减去一个,那么它是否有效,所以我认为它与如何解析代码有关?你能够解释一下这是如何工作的吗?提前致谢 .

代码在这里:

import UIKit

class ViewController: UIViewController {

    var value = 0
    @IBOutlet var number: UILabel!

    @IBAction func plusone(_ sender: Any) {
        value = value+1
        number.text = "\(value)"
    }

    @IBAction func plustwo(_ sender: Any) {
        value = value-1
        number.text = "\(value)"
    }

}

如果这很重要,应用程序看起来像这样:Screenshot

第二个按钮被命名为'plustwo',因为我还没弄明白我需要重命名它的地方,如果我只是在这里重命名它,应用程序显示一个空白屏幕,没有别的 .

1 回答

  • 0

    来自评论:

    我将plustwo更改为-2,它按预期工作 . 按Add One添加一个并按Substract One减去一个 . 我不知道为什么 .

    您描述的行为告诉我,您的Subtract One按钮连接到 plusoneplustwo 函数 . 您可以通过控制单击Interface Builder中的按钮并检查连接来检查这一点 . 如果您看到TouchUpInside连接到两个功能,请通过单击 x 删除一个以删除连接 .

    验证行为的另一种方法是将日志 print 语句添加到函数中,例如 print("in plusone")print("in plustwo") . 按Subtract One时,如果在控制台中看到这两条消息,则表示您已将按钮连接到 @IBAction .

    How did this happen? 当您在Interface Builder中复制已连接到 @IBAction 的按钮时,会经常发生这种情况 . 将它连接到新的 @IBAction 不会替换第一个,它只是连接到它们,并在按下按钮时调用它们 .

    第二个按钮被命名为'plustwo',因为我还没弄清楚我需要重命名它的位置,如果我只是在这里重命名它,应用程序显示一个空白屏幕,没有别的 .

    要重命名该功能,您需要更改该功能的名称,并在Interface Builder中删除并重新连接该连接 . 如上所述,按住Control键并单击Interface Builder中的按钮,删除与旧功能名称的连接,然后将按钮连接到新功能 .

相关问题