【问题标题】:Pressing one UIButton triggers another UIButton: I don't want this to happen按下一个 UIButton 会触发另一个 UIButton:我不希望这种情况发生
【发布时间】:2017-05-27 16:54:43
【问题描述】:

我是 swift 和 xcode 的新手,在创建这个带有圈数的简单计时器应用程序时遇到了一些麻烦。当我按下“圈”按钮时,也会触发“重置”按钮。谁能帮我解决这个问题?这些按钮彼此相邻,但我认为这与它没有任何关系。另外,我还注释掉了整个 lap 函数,同样的事情也发生了。

 @IBAction func Reset(_ sender: Any)
{
    min = 0
    sec = 0
    mil = 0
    timer.invalidate()
    createLabel()
    var i = 0
    while i < list.count
    {
        list[i].removeFromSuperview()
        i = i + 1
    }
    running = false

}



@IBAction func Lap(_ sender: UIButton)
{

    let word = UILabel()
    list.append(word)

    word.font = UIFont.systemFont(ofSize: 50)
    word.text = make()
    word.sizeToFit()

    word.frame.origin = CGPoint(x:187.5,y:700)
    self.Scroll.addSubview(word)
    word.center = CGPoint(x:187,y:last)
    last = last + 50


    Scroll.contentSize.height = Scroll.contentSize.height + 50

}

【问题讨论】:

  • 另外,我还注释掉了整个lap函数,同样的事情发生了
  • 听起来您将 2 个@IBActions 连接到您的膝上按钮。按住 Control 并单击您的 Lap 按钮并删除与 Reset() 的连接。
  • 哇,这很简单,非常感谢!
  • 函数和变量名(lapresetscrollView)应该以小写字母开头。您问题中的代码不会导致这种情况发生。请您显示任何使用您提到的按钮更新/执行任何操作的代码。如果您可以添加笔尖的屏幕截图,那也会很有帮助。 :-)
  • 我猜你复制了重置按钮来制作你的圈按钮。如果在复制按钮时连接了 @IBAction,那么新按钮也会获得该连接。

标签: ios swift xcode uibutton


【解决方案1】:

听起来您将两个@IBActions 连接到您的Lap 按钮。 控制-单击故事板中的Lap按钮,然后单击操作旁边的x删除与Reset()的连接。

我猜你复制了 Reset 按钮来制作你的 Lap 按钮。如果在复制按钮时连接了@IBAction,则新按钮也将获得该连接。因此,如果您向新按钮添加连接,它不会替换上一个操作,而是成为第二个操作。

【讨论】:

    【解决方案2】:

    我想你可能已经用相同的 IBAction 功能连接了两个按钮。在两个 IBAction 函数中创建一个 print 语句,看看会发生什么。或者,删除两个 IBAction 函数(以及从情节提要中引用出口)并重新连接。另外,检查连接检查器(故事板的右上角),看看你是否有任何死的插座。

    【讨论】:

      【解决方案3】:

      开始调试,您将找到解决方案。从第一点开始。就像在故事板中添加按钮,然后将它们连接到视图控制器。我认为您已将一个按钮连接到多个操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 2010-10-28
        • 2023-03-19
        • 1970-01-01
        相关资源
        最近更新 更多