Swift:如何在执行触摸操作时禁用用户交互?

sky*_*guy 21 swift

我正在使用精灵工具包,如果用户触摸屏幕,其中的操作

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    /* Called when a touch begins */

    for touch: AnyObject in touches {
    }
}
Run Code Online (Sandbox Code Playgroud)

进行了.但是,当他们执行时,用户仍然可以点按屏幕,应用程序会尝试再次运行操作.

如何在操作运行时禁用触摸交互/触摸功能中的操作?

Suh*_*hal 26

尝试从触摸对象获取视图,然后在其上禁用用户交互.

touch.view.isUserInteractionEnabled = false
Run Code Online (Sandbox Code Playgroud)


Jav*_*ría 26

Swift 3.0中是:

self.view.isUserInteractionEnabled = false
Run Code Online (Sandbox Code Playgroud)

  • Xcode 9.4.1 SDK 11.4 Swift 4.1:仍与上述self.view.isUserInteractionEnabled = false相同 (2认同)

Jan*_*orf 22

要在应用范围内禁用用户互动,请使用:

UIApplication.shared.beginIgnoringInteractionEvents()
UIApplication.shared.endIgnoringInteractionEvents()
Run Code Online (Sandbox Code Playgroud)