我对 View 触摸有疑问:
我有一个parentView(框架是(0,0,768,1024)),其中包含两个 subview (A和B),A框架(0,0,512,768)带有标签100,B框架(512,0,512,768)带有标签200。
我实现了触摸方法touchesBegan:withEvent:
touchesMoved:withEvent:
touchesEnded:withEvent:
。
当我开始从 A 到 B 进行触摸时,touchesBegan
和 touchesMoved
方法按预期触发
我需要实现:当触摸从A到达B时,A的touchesEnded应该被触发,B的触摸开始应该被触发,反之亦然。我在各自的方法中有自己的逻辑。有人可以建议如何实现同样的目标吗?
最佳答案
这是故意的行为。通常,如果您触摸取消按钮,并且在抬起时手指滑到删除按钮上,您肯定不想意外删除某些内容。
但是,我曾经遇到过这样的情况:我确实希望触摸像这样传递。与 @ejazz 非常相似,我将工作移至包含 A 和 B 的 View 。这启用了用户交互,并实现了 touchesBegan
、touchesMoved
和 touchesEnded
.
当触摸移动到 subview 上时,它会发送适当的消息。我只是打开和关闭 subview ,但如果需要,您应该能够在适当的 subview 上调用 touchesBegan
、touchesMoved
和 touchesEnded
。如果您需要知道触摸何时开始和结束,则需要跟踪与每次触摸关联的上一个 View - 或者只需调用其 previousLocationInView:
方法。
关于iphone - 如何取消touchesMoved :withEvent:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083894/