2011-04-07 71 views
0

我在Iphone編程中是noob,所以請幫助。如何檢測屬於兩個不同的UIViews的兩個UIImageView碰撞?

我以循環方式在相反方向旋轉2個視圖。現在我想知道兩幅圖像何時相交。

截至目前我旋轉視圖不是圖像,所以CGRectIntersectsRect()不會給我想要的結果。有沒有其他方法可以得到解決方案,即兩個圖像的交集?

我的問題是在不同的意見。任何想法或建議或代碼片段將是偉大的工作進一步實現我的目標。

- 編輯 - 我在一個視圖中有2個視圖在另一個第二個圖像中的第一個圖像。我正在向不同方向旋轉兩個視圖。將有一次,當兩個圖像將在相同的位置。我無法使用CGRectIntersectsRect(),因爲它們在不同的視圖中。

我怎麼知道這兩個圖像在位置?即發生碰撞。請原諒不能提供有關問題的明確解釋。

+0

不太清楚這個問題。假設它是由於兩幅圖像具有不同的協調性而引起的。因此,請嘗試在共同父視圖中獲取兩個圖像的矩形座標,並使用CGRectIntersectsRect()來檢測相交。 – Fourj 2011-04-07 05:56:04

+0

@Tony_Wu:我在一個視圖中顯示2個視圖在另一個第二個圖像中顯示第一個圖像。我正在向不同方向旋轉兩個視圖。將有一次,當兩個圖像將在相同的位置。我無法使用CGRectIntersectsRect(),因爲它們在不同的視圖中。 我如何知道這兩個圖像在位置?即發生碰撞。請原諒不能提供有關問題的明確說明。 – 2011-04-11 08:04:15

+0

@Tony_Wu:我試了一下,沒有運氣。雖然thax任何方式爲您提供幫助。我在這個猜測是我有視圖大小比窗口大。像PlayerView(UIView)是(1,92,482,540)和PlayerImage(UIImage)是(187,0,90,15)在屏幕上進行正確的循環。現在,如果我使用CGRect playerFrame = [playerImages convertRect:playerImages.frame toView:nil];比我(ge)(X,Y)(112,16),我不明白。再一次Thax。 – 2011-04-14 11:22:58

回答

0

嘗試使用此方法將視圖中的矩形轉換爲窗口座標中的矩形,然後使用CGRectIntersectsRect()。希望這對你有用。

將一個矩形從 接收器的座標系轉換爲另一個視圖的 。

  • (的CGRect)convertRect:(的CGRect)RECT toView:(UIView的*)視圖

參數rect的 接收機的座標系中的矩形。查看 視圖,該視圖是 轉換操作的目標。如果視圖爲零,則此方法將從 窗口基座座標轉換爲 。否則, 這兩個視圖和接收器必須屬於 到相同的UIWindow對象。返回 值轉換後的矩形。

+0

我嘗試了你建議的方法。雖然它不適合我。只是讓我告訴你我寫的代碼,如果錯誤請點出來。 >我有2個UIViews(分別包含playerImage和HurdleImage的PlayerView和HurdleView)。兩者的大小不同。同時旋轉它們我寫道 - 「CGRect playerFrame = [playerImages convertRect:playerImages.frame toView:self.view]; CGRect hurdleFrame = [hurdleImg convertRect:playerImages.frame toView:self.view];」 >我在nslog的不同位置獲得了這兩個位置,但屏幕上的位置都是相同的。任何提示? – 2011-04-12 10:04:13

+0

@Jennis你可以試試這個:[playerImages convertRect:playerImages.frame toView:nil]。 >如果視圖爲零,則此方法將從窗口底座座標轉換而來。 – Fourj 2011-04-12 15:14:33

相關問題