2011-10-18 52 views

回答

7

旋轉規定角度旋轉變換,但我猜你想實現360度(含)以上的旋轉。要做到這一點,你需要使用CAAnimation來實現它。例:

CABasicAnimation* spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
spinAnimation.duration = 5.0; 
spinAnimation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionLinear]; 
spinAnimation.toValue = [NSNumber numberWithFloat: 2.0 * M_PI * 20.0]; 
[myView.layer addAnimation:spinAnimation forKey:@"spinAnimation"]; 

上面的代碼將在5秒

+0

這並不完全是他所要求的。 –

-1

旋轉MyView的20倍,你需要保存當前變換和旋轉一次...所以你需要...

[myView setTransform:CGAffineTransformRotate(myView.transform, 1.0)]; 

這將旋轉適用於任何現有的變換,最初這將是CGAffineTransformIdentity,這是沒有旋轉,縮放或平移。

+0

多次應用CGAffineTransformRotate仍會標準化爲-2pi TJez

0

我認爲這裏的關鍵是CGAffineTransformRotate的參數預計爲弧度,而不是「旋轉數」。值得慶幸的是,通過乘以(2.0 * M_PI)很容易將「轉數」轉換爲弧度。

+0

是的,我明白這一點。但它仍然不能解決問題。 –

+0

啊......你的意思是CGAffineTransformRotate似乎正常化到-2pi ipmcc

+0

是的,@AshleyMills的方法對我來說非常合適,開箱即用。 SimonLee在這方面是正確的嗎?那是不是你想要的? – ipmcc