2014-09-01 42 views
0

我想創建一個旋轉按鈕,可以從我給定點 我想這可以旋轉,但它給人的角度,我想給分旋轉按鈕或圖像從一個點到另一個

self.theImageView.transform=CGAffineTransformMakeRotation (angle); 
     angle=30; 

我也試過,但它有同樣的問題

CABasicAnimation *halfTurn; 
    halfTurn = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    halfTurn.fromValue = [NSNumber numberWithFloat:0]; 
    halfTurn.toValue = [NSNumber numberWithFloat:((90*M_PI)/360)]; 
    halfTurn.duration = 1; 
    halfTurn.repeatCount = false; 
    [[button layer] addAnimation:halfTurn forKey:@"180"]; 

任何一個可以建議或給出代碼snippiest 由於事先

回答

0

如果你想想要給出兩點並圍繞這兩點旋轉你的觀點,這裏有一個問題。你必須看到這兩點與旋轉錨點等距離。您可以計算這種旋轉的弧角並進行相應設置。

你可以找到圓弧這裏的長度:

您可以找到公式找到弧角,在這個環節上:http://www.regentsprep.org/Regents/math/algtrig/ATM1/arclengthlesson.htm

編輯

我現在給定的前提是有7個按鈕圍繞一個錨點循環排列。你現在要做什麼,是維護稱爲​​實例級別變量,並將其初始化爲0

CGFloat nextAngle = currentAngle + (360/7); 
CABasicAnimation *halfTurn; 
    halfTurn = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    halfTurn.fromValue = [NSNumber numberWithFloat:((currentAngle*M_PI)/360)]; 
    halfTurn.toValue = [NSNumber numberWithFloat:((nextAngle*M_PI)/360)]; 
    halfTurn.duration = 1; 
    halfTurn.repeatCount = false; 
    [[button layer] addAnimation:halfTurn forKey:@"clock_wise_rotation"]; 
currentAngle = nextAngle; 

上面的代碼僅用於順時針旋轉。如果要執行逆時針動畫,則必須減去360/7並執行動畫。

+0

我有7個按鈕圈和中心有一個指針。我想要點擊動畫,將指針移動到按鈕。在這種情況下,我應該使用哪種方法。 – zohaibkhan 2014-09-01 11:04:22

+1

每個點之間的角度差將爲360/7。製作該動畫,從一個角度移動到另一個角度。 維護一個變量,告訴你當前的角度位置。根據移動方向添加或減去360/7度。 – avismara 2014-09-01 11:07:43

+0

我如何添加動畫到這個旋轉。請儘量提供一些代碼snippiest – zohaibkhan 2014-09-01 11:10:49