我使用(..) [UIView commitAnimations]
为很多视图创建动画。 现在我想检查一下是否被“枪杀”的视图触及了另一个视图。 有谁知道如何实现这个? 也许if(view.frame.origin.x==anotherview.frame.origin.x){ }
..Objective-C:检查视图是否触及另一个视图
6
A
回答
20
从概念上讲,如果一个视图的边界矩形相交,则视图“触及”另一个视图。因此,要比较的两种观点包围rects,你想要做的事,如:
Boolean viewsOverlap = CGRectIntersectsRect(viewA.bounds, viewB.bounds);
但这不会单独工作,因为意见的边界rects在自己的坐标空间指定的(意思是无论是在启动0,0
,等等,等等),所以你还需要你比较之前的rects变换到一个共同的坐标空间:
CGRect boundsA = [viewA convertRect:viewA.bounds toView:nil];
CGRect boundsB = [viewB convertRect:viewB.bounds toView:nil];
Boolean viewsOverlap = CGRectIntersectsRect(boundsA, boundsB);
从那里,你应该能够找出如何通过你的列表迭代效率views-you-care-about来确定是否有重叠。
4
或者你可以只比较帧,如果他们在同上海华:
BOOL methodB = CGRectIntersectsRect(viewA.frame, viewB.frame);
+0
这工作完全! – Bobby 2016-02-25 17:50:52
相关问题
- 1. Android:检测用户是否触及父视图中的视图
- 2. 如何检查一个视图是否位于另一个视图之上?
- 3. 如何检测HorizontalScrollView内的视图触及另一个视图?
- 4. Couchdb:是否可以从另一个视图中查询视图?
- 5. 如何检查动态视图是否与另一个视图重叠?
- 6. 如何在拖动时查看视图是否触及了另一个视图的框架?
- 7. 如何检查另一个视图控制器是否可见?
- 8. 检查视图等于另一个
- 9. 如何检查视图包含另一个视图?
- 10. 触发从一个视图到另一个视图的事件
- 11. 是否可以从另一个视图创建视图?
- 12. 查看另一个视图
- 13. 检测UIButton触及子视图
- 14. 在另一个子视图顶部检测一个子视图
- 15. 如何检查SpriteNode是否触及另一个SpriteNote?
- 16. 如何检查一个视图的引用是否在android的另一个视图内?
- 17. Swift将选择器触发到另一个视图的视图
- 18. 将视图从一个视图移动到另一个视图
- 19. UIScrollView触及vs子视图
- 20. 如何检测子视图中的事件触摸或如何在触摸子视图时触及父视图?
- 21. Codeigniter视图加载到一个视图,但不是另一个
- 22. Android:一个视图(不是视图组)可以包含另一个视图吗?
- 23. 使用Swift检查子视图是否在视图中
- 24. 如何检查视图是否存在?
- 25. 检查UIImage是否在视图顶部
- 26. 检查视图是否已被删除?
- 27. 检查文本视图是否在android
- 28. 如何检查视图是否存在?
- 29. 检查活动是否存在视图
- 30. 对另一个视图进行视图
+1很好地解释 – Till 2011-12-18 18:09:38