2009-11-25 15 views
-3

我希望圖像根據編程代碼繪製的路徑移動。iPhone中的運動路徑/運動指南?

我以前曾問過類似的問題(https://stackoverflow.com/questions/1571182/how-to-limit-a-uiimageview-to-move-in-a-specific-path),但我發現我問的方式不對。圖像不需要是UIImageView。此外,上面給出的答案稍後發現它僅適用於Mac OS X,而不適用於iPhone。

無論如何,這裏是我繪製簡單路徑的代碼。

CGContextSetRGBStrokeColor(theContext, 1.0, 0.0, 1.0, 1.0); 
// Draw them with a 2.0 stroke width so they are a bit more visible. 
CGContextSetLineWidth(theContext, 2.0); 

// Draw a bezier curve with end points s,e and control points cp1,cp2 
CGPoint s = CGPointMake(30.0, 120.0); 
CGPoint e = CGPointMake(300.0, 120.0); 
CGPoint cp1 = CGPointMake(120.0, 30.0); 
CGPoint cp2 = CGPointMake(210.0, 210.0); 

CGMutablePathRef path = CGPathCreateMutable(); 
CGPathMoveToPoint(path, NULL, s.x, s.y); 
CGPathAddCurveToPoint(path, NULL, cp1.x, cp1.y, cp2.x, cp2.y, e.x, e.y); 
CGPathAddCurveToPoint(path, NULL, cp2.x, cp1.y, cp1.x, cp2.y, s.x, s.y); 
CGPathCloseSubpath(path); 

CGContextSetRGBStrokeColor(theContext, 1.0f, 0.0f, 0.0f, 1.0f); 
CGContextAddPath(theContext, self.path); 
CGContextSetLineWidth(theContext, 1.0); 
CGContextStrokePath(theContext); 

其中theContext是CGContextRef。上述代碼的結果將繪製旋轉90度的「8」形狀。但是,如何使圖像遵循路徑?

UPDATE#1:對於複製問題抱歉,但我想進一步詢問如何根據路徑使圖像旋轉(即頭部矢量應該遵循路徑的切線)。任何人都能提出一些想法嗎

更新#2:如何使路徑動態變化?

+0

這應該是對這個問題的修改,然後,不是一個全新的問題。無論如何,你都得到了很好的答案。在那個答案中,特定於Mac的東西很少。 – 2009-11-25 13:32:31

+1

http://stackoverflow.com/questions/1571182/how-to-limit-a-uiimageview-to-move-in-a-specific-path – 2010-04-26 16:24:58

+0

可能的重複[如何限制UIImageView移動到一個特定的路徑?](http://stackoverflow.com/questions/1571182/how-to-limit-a-uiimageview-to-move-in-a-specific-path) – TylerH 2017-02-13 22:15:36

回答

1

您得到您的其他帖子的答案適用於您的情況。您必須自己將AppKit翻譯爲UIKit。