2012-10-01 147 views
4

我有一個圖像。我想沿路徑拖動該圖像。路徑可以是圓形或矩形形狀。如果圖像被觸摸並拖動,它應該只沿着路徑行進,不應該離開路徑。我嘗試過使用Core Graphics和Core動畫,但找不到正確的方法。我在網上搜索過,但總是顯示如何沿着路徑移動物體。找不到任何有關沿路徑拖動對象的信息。此外,我發現他們是Apple提供的NO方法,用於從UIBezierPath中提取點。沿Iphone路徑拖動

他們無論如何都這麼做?

+0

爲什麼這個問題標籤爲Android? Android版Core-Grapics或Core-Animation都不可用。由於API不同,您可能無法獲得與兩個平臺相匹配的單個答案。 –

+0

對不起。我編輯過它。太好奇了。 –

+0

用戶是沿相同路徑拖動還是隻是在屏幕上拖動? –

回答

0

UIBezierPath類有一個名爲- (BOOL)containsPoint:的實例方法。使用此方法和2 UIBezierPath,您可以檢查對象是否沿着路徑移動。

+---------+ 
|xxxxxxxxx| 
|x+-----+x| 
|x|  |x| 
|x|  |x| 
|x|  |x| 
|x+-----+x| 
|xxxxxxxxx| 
+---------+ 

這裏的技巧是讓1條路徑比第一條(也許2像素)略小,同時確保兩條路徑有一個共同的中心。您的對象現在必須移動的路徑/路線將是您從調用- (BOOL)containsPoint:獲得的貝塞爾路徑區域的差異。

如果您的對象包含在大UIBezierPath內,但不包含在小圖標中,那麼您就知道自己處於正確的路徑。

+0

你可以添加一些代碼如何做到這一點 –