iOS:是否有标准的方法来检查用户是否与给定的UI元素之外的其他UI元素交互?

iOS:是否有标准的方法来检查用户是否与给定的UI元素之外的其他UI元素交互?,ios,swift,uibutton,Ios,Swift,Uibutton,这似乎是每个iOS应用程序都需要的,但我找不到任何相关信息,可能是因为要连贯地表达这个问题有多困难 具体来说,每当用户与应用程序界面中除给定元素以外的任何其他元素进行交互时,我需要执行特定操作(隐藏两个按钮) 例如:想想苹果提供的滑动动作按钮的工作方式,即当您在表格单元格中从右向左滑动时,按钮会滑出,但如果您尝试点击/拖动/执行动作按钮之外的任何操作,它们再次滑开,界面不会响应您试图执行的任何操作,因此确保当用户在应用程序中执行其他操作时,按钮永远不会挂在外面 那么我的问题是:有没有一种标准的方

这似乎是每个iOS应用程序都需要的,但我找不到任何相关信息,可能是因为要连贯地表达这个问题有多困难

具体来说,每当用户与应用程序界面中除给定元素以外的任何其他元素进行交互时,我需要执行特定操作(隐藏两个按钮)

例如:想想苹果提供的滑动动作按钮的工作方式,即当您在表格单元格中从右向左滑动时,按钮会滑出,但如果您尝试点击/拖动/执行动作按钮之外的任何操作,它们再次滑开,界面不会响应您试图执行的任何操作,因此确保当用户在应用程序中执行其他操作时,按钮永远不会挂在外面

那么我的问题是:有没有一种标准的方法来实现这一点,比如一些委托函数自动捕获用户与UI的任何交互,除了特定的元素

或者我必须编写代码来检查用户当时是否在屏幕上的每个其他UI元素上点击/拖动/等等

想想苹果提供的滑动动作按钮的工作方式,即当你在表格单元格中从右向左滑动时,按钮会滑出,但如果你尝试点击/拖动/做动作按钮之外的任何事情,按钮会再次滑出,界面不会对你尝试执行的任何动作做出响应,因此,确保当用户在应用程序中执行其他操作时,按钮永远不会挂在外面。所以我的问题是:有没有一个标准的方法来做到这一点

覆盖主视图的
func hitTest(CGPoint,with:UIEvent?)
。所有的触摸都会经过这里,告诉您触摸了哪个子视图


所以通常,您只需返回调用
super
的结果。但当您处于这种特殊模式时,您实际上会看到
super
返回给您的是什么。如果它是交互式子视图,请返回它,以便用户能够以正常方式与它交互。否则,不要返回它(return
nil
)并执行任何您想执行的操作(例如,离开特殊模式并恢复界面)。

您可能需要在窗口上使用自定义手势识别器,或者只需覆盖
UIWindow.sendEvent