代码之家  ›  专栏  ›  技术社区  ›  CristianMoisei

Swift:按下按钮时编辑标签值

  •  0
  • CristianMoisei  · 技术社区  · 7 年前

    我正在努力学习Swift,我在玩弄变量的基础知识。我制作了一个应用程序,当你按下一个按钮时,标签的值会发生变化,而加1的按钮起作用,减1的按钮不起作用。如果我将第一个按钮(plusone)改为减1,那么它就起作用了,所以我假设这与代码的解析方式有关?你能解释一下这是怎么回事吗?提前谢谢。

    代码如下:

    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 回复  |  直到 7 年前
        1
  •  0
  •   vacawama    7 年前

    从评论中:

    我将plustwo改为-2,它按预期工作。按Add One 添加一个,然后按“减一”减一个。我不知道为什么。

    你描述的行为告诉我你有 减去一 按钮连接到 plusone plustwo 功能。您可以通过以下方式进行检查 控制 -单击中的按钮 界面生成器 并检查连接。如果你看到 触碰内侧 连接到两个功能,单击 x 删除连接。

    验证行为的另一种方法是添加日志记录 print 函数的语句,例如 print("in plusone") print("in plustwo") 。当您按下 减去一 ,如果您在控制台中看到这两条消息,则您知道您的按钮已连接到这两条消息 @IBAction s

    这是怎么发生的? 在中复制按钮时经常会发生这种情况 界面生成器 已连接到 @iAction公司 。将其连接到新 @iAction公司 不替换第一个,它只连接到两个,并在按下按钮时同时调用这两个。

    第二个按钮名为“plustwo”,因为我还没有弄明白 我还需要在哪里重命名它,如果我只是在这里重命名它,应用程序 显示一个空白屏幕,而不显示其他内容。

    要重命名函数,需要更改函数的名称 卸下并重新连接 界面生成器 。如上所述, 控制 -单击中的按钮 界面生成器 并删除与旧函数名称的连接,然后将按钮连接到新函数。