我有一個圖像。我想沿路徑拖動該圖像。路徑可以是圓形或矩形形狀。如果圖像被觸摸並拖動,它應該只沿着路徑行進,不應該離開路徑。我嘗試過使用Core Graphics和Core動畫,但找不到正確的方法。我在網上搜索過,但總是顯示如何沿着路徑移動物體。找不到任何有關沿路徑拖動對象的信息。此外,我發現他們是Apple提供的NO方法,用於從UIBezierPath中提取點。沿Iphone路徑拖動
他們無論如何都這麼做?
我有一個圖像。我想沿路徑拖動該圖像。路徑可以是圓形或矩形形狀。如果圖像被觸摸並拖動,它應該只沿着路徑行進,不應該離開路徑。我嘗試過使用Core Graphics和Core動畫,但找不到正確的方法。我在網上搜索過,但總是顯示如何沿着路徑移動物體。找不到任何有關沿路徑拖動對象的信息。此外,我發現他們是Apple提供的NO方法,用於從UIBezierPath中提取點。沿Iphone路徑拖動
他們無論如何都這麼做?
UIBezierPath
類有一個名爲- (BOOL)containsPoint:
的實例方法。使用此方法和2 UIBezierPath
,您可以檢查對象是否沿着路徑移動。
+---------+
|xxxxxxxxx|
|x+-----+x|
|x| |x|
|x| |x|
|x| |x|
|x+-----+x|
|xxxxxxxxx|
+---------+
這裏的技巧是讓1條路徑比第一條(也許2像素)略小,同時確保兩條路徑有一個共同的中心。您的對象現在必須移動的路徑/路線將是您從調用- (BOOL)containsPoint:
獲得的貝塞爾路徑區域的差異。
如果您的對象包含在大UIBezierPath
內,但不包含在小圖標中,那麼您就知道自己處於正確的路徑。
你可以添加一些代碼如何做到這一點 –
爲什麼這個問題標籤爲Android? Android版Core-Grapics或Core-Animation都不可用。由於API不同,您可能無法獲得與兩個平臺相匹配的單個答案。 –
對不起。我編輯過它。太好奇了。 –
用戶是沿相同路徑拖動還是隻是在屏幕上拖動? –