我使用(..) [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