如何使用 touchesBegan 和 touchesEnded?
Posted
技术标签:
【中文标题】如何使用 touchesBegan 和 touchesEnded?【英文标题】:how to use touchesBegan and touchesEnded? 【发布时间】:2017-01-28 12:23:31 【问题描述】:我在 ViewController 上添加了以下代码
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
print("started")
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?)
print("ended")
但它根本不打印任何消息。
【问题讨论】:
尝试将它们放在视图而不是视图控制器上。 (我很惊讶地看到这些可以在 UIViewController 上被覆盖。) @dfd 我是 Swift 的初学者。你能告诉我如何将这些代码放在 View 上,而不是 ViewController 上。 【参考方案1】:UIResponder 类是一个抽象接口,用于响应和 处理事件 Apple API Reference
UIWindow、UIViewController、UIView 是 UIResponder 的子类
如果你想使用touchesBegan
和touchesEnded
,覆盖它
触摸事件跟随响应者链参考apple docs
发生一些触摸事件,您的 ViewController 的视图成为下一个响应者并成功命中测试 touchesBegan
在触摸开始时调用,touchesEnded
被调用触摸结束
【讨论】:
我确实覆盖了 UIViewController 上的上述代码。错了吗?以上是关于如何使用 touchesBegan 和 touchesEnded?的主要内容,如果未能解决你的问题,请参考以下文章
你如何知道在 touchesBegan 中被触摸的对象是啥?