我使用(..) [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. 如何检查一个视图是否位于另一个视图之上?
- 2. Couchdb:是否可以从另一个视图中查询视图?
- 3. 如何检查动态视图是否与另一个视图重叠?
- 4. 如何检查另一个视图控制器是否可见?
- 5. 检查视图等于另一个
- 6. 查看另一个视图
- 7. 是否可以从另一个视图创建视图?
- 8. Swift将选择器触发到另一个视图的视图
- 9. 将视图从一个视图移动到另一个视图
- 10. UIScrollView触及vs子视图
- 11. Codeigniter视图加载到一个视图,但不是另一个
- 12. 用另一个视图替换视图
- 13. 从另一个视图调用视图
- 14. 从另一个视图呈现视图
- 15. 从另一个视图更新视图
- 16. OBJC视图替换另一个视图
- 17. 检查UIImage是否在视图顶部
- 18. 检查活动是否存在视图
- 19. 检查文本视图是否在android
- 20. 只传递一些触摸事件从一个视图到另一个视图
- 21. 如何检查我的子视图是否被触摸?
- 22. 如何在添加另一个之前检查超级视图中是否有其他选择器视图?
- 23. 制作一个视图“透视”另一个视图
- 24. Cakephp从另一个视图检索ID
- 25. 是否可以通过拖动将一个视图的子视图移动到另一个视图?
- 26. CakePHP的2 - 检查是否一个用户登录视图
- 27. 检查一个div是否绑定到淘汰视图模型
- 28. 检查一个视图是否属于线性布局
- 29. 检查用户是否导航到iOS中的另一个视图
- 30. 检测一个特定的视图是否是一个webview
+1很好地解释 – Till 2011-12-18 18:09:38