【发布时间】:2016-10-21 09:07:43
【问题描述】:
根据 Apple 文档,隐藏的 UIButtons 不应接收点击事件。
但是,我们的应用程序有一个 UIButton 尽管被隐藏,但仍接收点击事件。
此函数是点击按钮时调用的IB Action。当按钮从 Storyboard 中移除时,不会调用此函数。当按钮被添加到 Storyboard 时,函数会被调用——即使按钮被隐藏了。
为了验证按钮是否隐藏,我们在函数中放置了一个断点,并从 Xcode 调试器运行 expr sender.hidden。结果:是的。
堆栈跟踪显示 IB 操作是由 UIApplicationMain 中的代码触发的,而不是我们的代码。
通过 Connections Inspector,我们确认除了神秘按钮之外,IB 操作没有其他触发器。
彻底糊涂了。有什么建议吗?
@IBAction func buttonTapped(sender: UIButton) {
// If here, handle tap
...
}
【问题讨论】:
-
您是否以任何方式以编程方式触发按钮点击?
-
按钮隐藏时可以设置userInteractionEnable = false
-
@Watson nope 没有以编程方式触发按钮。
-
如果您的 IBAction 被另一个 UIObject 或按钮引用,您可以检查模拟器视图层次结构
-
@MuhammadAdnan userInteractionEnable 应该不需要。根据 Apple 文档,隐藏的 UIButtons 不应接收手势事件。
标签: ios swift uiview uibutton storyboard