2010-03-11 184 views
0

我正在尋找一種方法來在iPhone應用程序中創建一個允許按鈕圍繞中心點旋轉的菜單。把它放在視覺上:按鈕是行星,中心是太陽。圍繞中心旋轉按鈕

  • 這將允許用戶'旋轉'圓形路徑周圍的按鈕。

**一個實際的例子就是他們iPhone應用程序的Poynt菜單。 **

我開始使用此代碼,我從後發現mahboudz這裏SO:

- (void) runSpinAnimationWithDuration:(UIView*)animatedView withDuration:(CGFloat) duration; 
{ 
CABasicAnimation* rotationAnimation; 
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"]; 
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * 1 * duration ]; 
rotationAnimation.duration = duration; 
rotationAnimation.cumulative = YES; 
rotationAnimation.repeatCount = 1.0; 
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; 
[animatedView.layer setAnchorPoint:CGPointMake(0.5, 0.5)]; 
[animatedView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; 
} 

有上旋轉了一個有趣的帖子在這裏對這樣:link text

無論如何,我可以旋轉一個按鈕 - 但不是圍繞預定路徑(如行星場景)。

任何幫助,將不勝感激。

回答

-1

您正在圍繞它自己的中心旋轉按鈕,如「frame」屬性所定義。此外,您還需要在旋轉按鈕的同時將按鈕的框架更改爲不同的座標。類似這樣的:

CGFloat angle = rotationAnimation.toValue; 
CGFloat radius = 50; 
CGPoint rotationCenter = CGPointMake(100,100); 
b.frame = CGRectMake(rotationCenter.x + radius * cos(angle), rotationCenter.y + radius * sin(angle), b.frame.size.width, b.frame.size.height) 
+0

感謝您的回答。無可否認,這是我第一次進入動畫領域,因此我還沒有得到任何正確的工作。 – CraigH 2010-03-12 16:45:54

+0

這是什麼?這是無用的一段代碼。你是否提高重複賬戶的利率? – 2015-08-31 08:57:33