如何在一个UIWindow或UIView的获得触摸位置没有uigesturerecognizer, 目的是在极短的延迟得到触摸位置作为调度员可延缓触摸点火事件IOS触摸位置,而不uigesturerecognizer
0
A
回答
0
您需要继承UIView
和覆盖UIResponder
(超类UIView
)方法touchesBegan(_:with:)
。请参阅方法here的文档。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
// Get the touch location in THIS VIEW's coordinate system:
let locationInThisView = touch.location(in: self)
// Get the touch location in the WINDOW's coordinate system
let locationInWindow = touch.location(in: nil)
}
}
此外,请确保您的观点有物业isUserInteractionEnabled
设置为true
。
0
覆盖以下方法在您的UIView子类中。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let point = touches.first?.location(in: self)
print("location: ", point ?? CGPoint.zero)
}
+0
当我重写touchesBegan时,我仍然需要等到调度员触发touchesBegan事件后,在我的个人测试中,它会以50Hz的频率被触发,并有一些延迟,但我想要得到100Hz的低延迟 – user818117
相关问题
- 1. 怪异IOS触摸事件与UIGestureRecognizer
- 2. UIGestureRecognizer触摸移动UIView
- 3. 触摸位置
- 4. 触摸位置CCLayer
- 5. UIResponder vs UIGestureRecognizer触摸事件响应
- 6. UIGestureRecognizer手柄触摸在UITableView的
- 7. Siri远程触摸位置?
- 8. UIView触摸位置坐标
- 9. 识别触摸位置
- 10. UIButton TouchUpInside触摸位置
- 11. UIPinchGestureRecognizer的触摸位置
- 12. 当前触摸位置
- 13. GLKit检测触摸位置
- 14. 触摸位置高亮
- 15. 获取触摸位置scrollView
- 16. UIGestureRecognizer - 获取对触摸的UIViewController的引用,而不是其视图?
- 17. 如何触发UISlider的UIControlEventValueChanged而不触摸iOS中的UISlider?
- 18. 获取位于触摸位置的uiview
- 19. 如何重置NSTimer的触摸,触摸移动在ios
- 20. SKShapeNode与SKAction触摸结束时,从触摸位置移动
- 21. 如何获得触摸的触摸位置开始功能
- 22. 使用位置查找手势触摸的坐标触摸
- 23. 添加图像在触摸位置的Android触摸布局
- 24. 位置固定和webkit溢出触摸问题ios 7
- 25. 获取触摸位置谷歌地图iOS
- 26. 触摸IOS画线
- 27. Monogame触摸位置坐标与触摸屏分辨率不匹配
- 28. 自定义TouchDevice触发不正确位置的触摸事件
- 29. UIGestureRecognizer在视图superview上设置触摸的最小数量而不是视图本身?
- 30. 如何测试触摸屏(而不是“触摸功能”)?
当我重写的touchesBegan我还需要等到调度触发的touchesBegan事件,在我个人的测试中,它与50Hz的发射,具有一定的延迟,但我想要得到它的100Hz,低延迟 – user818117
据据我所知,iOS SDK不提供更快的速度。也许如果你改为“UIWindow”的子类(视图层次结构的根对象),它会稍微调用一些? –
也许重写'UIApplication.sendEvent()'?想不到别的。无论哪种方式,'touchesBegan(...)的速度足够快,以至于人类用户的交互感觉很自然。我不知道你的应用程序试图做什么,需要在这种实时条件下检测水龙头, –