通过多个 UIView 注册触摸
Posted
技术标签:
【中文标题】通过多个 UIView 注册触摸【英文标题】:Register touch on passing through multiple UIViews 【发布时间】:2015-12-31 08:24:05 【问题描述】:我正在尝试检测在用 Swift 编写的 ios 应用程序中传递多个 UIView 时的触摸。
下图应阐明用户交互:
每个彩色图块都是UIView
。
当手指按在紫色瓷砖上时,我可以使用touchesBegan
来注册触摸。然后我可以通过touchesMoved
跟踪手指,以在手指从紫色瓷砖移动到棕色瓷砖时取消触摸。
现在,基本上我想在棕色瓷砖上触发touchesBegan
方法,直到手指进入蓝色瓷砖。同样,这应该会触发棕色的 touchesEnded
和蓝色的 touchesBegan
。
如何在 iOS 中实现这一点?
【问题讨论】:
【参考方案1】:尝试添加UIPenGesture
...
并在选择器方法中检测触摸区域并根据要求在图块上更改颜色...
【讨论】:
实用教程ioscreator.com/tutorials/dragging-views-with-gestures ... 那么视图需要相互了解。我希望当你在 UIView 上移动时 touchesBegan 会触发,这样它们就不需要互相认识了。 在所有这些图块的父视图上添加手势,并检查棕色图块中是否有触摸坐标内容...您可以获得触摸状态,因此可以检测到开始结束...以上是关于通过多个 UIView 注册触摸的主要内容,如果未能解决你的问题,请参考以下文章
如何使触摸事件通过 UIView(类似于 CSS 中的 pointer-events:none)?