按下一个 UIButton 会触发另一个 UIButton:我不希望这种情况发生
Posted
技术标签:
【中文标题】按下一个 UIButton 会触发另一个 UIButton:我不希望这种情况发生【英文标题】:Pressing one UIButton triggers another UIButton: I don't want this to happen 【发布时间】: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() 的连接。 哇,这很简单,非常感谢! 函数和变量名(lap
、reset
、scrollView
)应该以小写字母开头。您问题中的代码不会导致这种情况发生。请您显示任何使用您提到的按钮更新/执行任何操作的代码。如果您可以添加笔尖的屏幕截图,那也会很有帮助。 :-)
我猜你复制了重置按钮来制作你的圈按钮。如果在复制按钮时连接了 @IBAction,那么新按钮也会获得该连接。
【参考方案1】:
听起来您将两个@IBAction
s 连接到您的Lap 按钮。 控制-单击故事板中的Lap按钮,然后单击操作旁边的x
删除与Reset()
的连接。
我猜你复制了 Reset 按钮来制作你的 Lap 按钮。如果在复制按钮时连接了@IBAction
,则新按钮也将获得该连接。因此,如果您向新按钮添加连接,它不会替换上一个操作,而是成为第二个操作。
【讨论】:
【参考方案2】:我想你可能已经用相同的 IBAction 功能连接了两个按钮。在两个 IBAction 函数中创建一个 print 语句,看看会发生什么。或者,删除两个 IBAction 函数(以及从情节提要中引用出口)并重新连接。另外,检查连接检查器(故事板的右上角),看看你是否有任何死的插座。
【讨论】:
【参考方案3】:开始调试,您将找到解决方案。从第一点开始。就像在故事板中添加按钮,然后将它们连接到视图控制器。我认为您已将一个按钮连接到多个操作。
【讨论】:
以上是关于按下一个 UIButton 会触发另一个 UIButton:我不希望这种情况发生的主要内容,如果未能解决你的问题,请参考以下文章
如何在按下其他 UIButton 时触发 UIButton 的“按下效果”或“突出显示效果”
如何在手指从1按钮拖动到下一个按钮时触发UIButton事件