我使用 (..) [UIView commitAnimations]
为很多 View 设置动画。
现在我想检查被“拍摄”的 View 是否触及了另一个 View 。
有谁知道如何实现这个?
也许 if(view.frame.origin.x==anotherview.frame.origin.x){
..
最佳答案
从概念上讲,如果一个 View 的边界矩形相交,则一个 View “接触”另一个 View 。因此,要比较两个 View 的边界矩形,您需要执行如下操作:
Boolean viewsOverlap = CGRectIntersectsRect(viewA.bounds, viewB.bounds);
但是单独这样做是行不通的,因为 View 的边界矩形是在它们自己的坐标空间中指定的(意味着它们都从 0,0
开始,等等)所以你还需要在比较它们之前将矩形转换为公共(public)坐标空间:
CGRect boundsA = [viewA convertRect:viewA.bounds toView:nil];
CGRect boundsB = [viewB convertRect:viewB.bounds toView:nil];
Boolean viewsOverlap = CGRectIntersectsRect(boundsA, boundsB);
从那里,您应该能够弄清楚如何有效地遍历您关心的 View 列表以确定是否有任何重叠。
关于Objective-C:检查 View 是否触及另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8553213/