如何检查拖动视图的位置是不是位于另一个视图之上

Posted

技术标签:

【中文标题】如何检查拖动视图的位置是不是位于另一个视图之上【英文标题】:How to check position of dragging view is lying over the another view or not如何检查拖动视图的位置是否位于另一个视图之上 【发布时间】:2017-09-16 16:28:41 【问题描述】:

我有这些圆形可拖动按钮,我正在使用 set setTranslationX() 用于拖动功能的 ontouch 事件中的 setTranslationY()。 我如何知道是否有任何按钮拖到图标中间,是否位于中间图标上方?

【问题讨论】:

您可以在触摸移动时使用按钮之间的碰撞检测。 感谢您的帮助。你能提供代码或任何链接引用吗? 【参考方案1】:

谢谢@Dheerubhai Bansal 最后我完成了使用这种碰撞方法。可以很好地找到两个视图之间的交集

public boolean CheckCollision(View v1, View v2) 
    Rect myViewRect = new Rect();
    v1.getHitRect(myViewRect);
    Rect otherViewRect1 = new Rect();
    v2.getHitRect(otherViewRect1);
    return Rect.intersects(myViewRect, otherViewRect1);

【讨论】:

以上是关于如何检查拖动视图的位置是不是位于另一个视图之上的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Autolayout iOS 在两个视图之上设置视图

iPhone 可扩展视图位于另一个视图之上

将图像从滚动视图拖动到视图而不会影响其位置

当用户点击视图外的任意位置时关闭视图

在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

如何在 Grid 中拖动和移动子视图以交换它们的位置