当用户触摸屏幕的特定部分时如何触发事件 - ios?

Posted

技术标签:

【中文标题】当用户触摸屏幕的特定部分时如何触发事件 - ios?【英文标题】:How to trigger an event when a user touches specific part of the screen - ios? 【发布时间】:2018-09-07 19:17:51 【问题描述】:

我有一个使用 UIViewController 制作的自定义弹出窗口(演示文稿:'over current context') - 请参见下文。我想做的是一旦用户触摸屏幕的顶部 - 黑暗的一半,它不包含菜单选项,就会关闭 UIViewController 。我可以触发什么事件来让它工作?

【问题讨论】:

使用点击手势。 Swift, UIView touch event in controller的可能重复 【参考方案1】:

您可以在 darkView 中添加点击手势并在其中执行操作

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
mydarkView.addGestureRecognizer(tapGesture)

//

// 3. this method is called when a tap is recognized
@objc func handleTap(_ sender: UITapGestureRecognizer) 
     self.dismiss(animated:true,completion:true)

使用

override func touchesBegan(_ touches: Set<UITouch>, 
         with event: UIEvent?)

【讨论】:

以上是关于当用户触摸屏幕的特定部分时如何触发事件 - ios?的主要内容,如果未能解决你的问题,请参考以下文章

iOS-事件处理

javaScript事件事件类型之触摸与手势事件

触摸事件仅在iPad iOS 11.4上的Mobile Safari中滚动时触发“一次”

如何检测不同图像部分上的不同触摸事件

jQuery Mobile 事件

jQuery Mobile 事件