2012-10-15 118 views
0

我使用UIPanGestureRecognizer來移動屏幕上的我的UIView對象。UIPanGestureRecognizer檢測何時一個對象穿過另一個對象

我想做 的主要目的是找出我怎麼能趕上事件,當兩個物體相互交叉什麼。例如兩個UIView對象。所以首先它是靜態對象(不移動),另一個我可以在屏幕上隨意移動。因此,我需要知道我的第二個對象(UIView)穿過靜態對象的時刻。另外主要的問題是這些視圖位於不同的視圖上。因此,第一個靜態視圖位於稱爲「編輯視圖」的視圖上,而另一個視圖位於稱爲「工具欄」的視圖上。所以這意味着我不能只比較兩個矩形並享受它。有沒有什麼辦法如何比較兩個對象時,他們互相交叉,但也許沒有方法,只是比較他們rect。

回答

1

我認爲你要找的是UIView的convertRect:toView:方法。

CGRect *convertedView1Rect = [view1 convertRect:view1.frame toView:view2]; 
BOOL intersects = CGRectIntersection(convertedView1Frame, view2.frame); 
+0

由於它是我所需要的,但我加點校正。 CGRect convertedViewFromTools = [self.view convertRect:viewFromTools.frame fromView:viewFromTools.superview]; CGRect相交= CGRectIntersection(convertedViewFromTools,vc.view.frame); BOOL isIntersected = intersects.size.height> 0; –

1
Following method required two parameter of rectangle's - just pass rect1 and rect2 , and it return bool value whether it intersect or not - 

    if(CGRectIntersectsRect(<#CGRect rect1#>, <#CGRect rect2#>)) { 
     NSLog("Intersect"); 
    } else { 
     NSLog("Not Intersect"); 
    } 
+0

謝謝,是的,有我想要的東西,但正如我所說這些是不同的意見,我不能僅僅比較。因爲如果兩個視圖都位於一個視圖上,我可以使其運行。 –

相關問題