按鈕如何在360秒的時間內旋轉30秒,之後按鈕停止旋轉。根據需要如何以編程方式在iPhone中按360度旋轉按鈕?
回答
360度旋轉動畫只是Core Animation的幾行代碼。
CABasicAnimation *rotate =
[CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotate.byValue = @(M_PI*2); // Change to - angle for counter clockwise rotation
rotate.duration = 30.0;
[yourButton.layer addAnimation:rotate
forKey:@"myRotationAnimation"];
通過使用byValue
財產你正在做360度旋轉什麼是有一個相對旋轉之前(相對於顯式指定從和值)。這意味着即使已經旋轉了,上面的代碼也會將按鈕旋轉360度。所有明確指定結束轉換的答案都假定該按鈕尚未旋轉。
上面的例子儘可能小地做你剛纔所要求的(「360度旋轉,持續時間30秒」)。如果你想有更多的控制,你可以選擇做動畫的開始和/或通過指定計時功能慢慢停止
rotate.timingFunction =
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
如果您尚未添加QuarzCore.framework
到你的項目,你需要做的所以。另外#import <QuartzCore/QuartzCore.h>
在您的源文件的頂部。
[UIView animateWithDuration:.30f animations:^{
btnGallery.transform = CGAffineTransformRotate(CGAffineTransformIdentity, -M_PI);
}];
CATransform3D myRotationTransform = CATransform3DRotate(Yourbutton.layer.transform, -1, 0.0, 0.0, 1.0);
Yourbutton.layer.transform = myRotationTransform;
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
animation.fromValue = [NSNumber numberWithFloat:0.0f];
animation.toValue = [NSNumber numberWithFloat: -1];
animation.duration = 30;
animation.repeatCount = 1;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[Yourbutton.layer addAnimation:animation forKey:@"MyAnimation"];
應該努力!不要忘記包含quartz.framework!
在這種情況下,由於360度旋轉與0度旋轉相同,因此無需在完成時移除動畫。 – 2013-03-23 10:55:38
是的,這就是爲什麼我將removedOnCompletion設置爲NO! – 2013-03-23 11:06:22
......「不需要**不刪除」=「你也可以刪除」(意思是'removedOnCompletion = YES;'或者只是刪除那行,因爲'YES'是默認的。) – 2013-03-23 11:09:07
好吧,我只是用
被self.buttonImageView你需要旋轉ImageView的。
[UIView animateKeyframesWithDuration:0.5 delay:0 options:UIViewKeyframeAnimationOptionCalculationModeLinear animations:^{
[UIView addKeyframeWithRelativeStartTime:0.0 relativeDuration:0.25 animations:^{
self.buttonImageView.transform= CGAffineTransformMakeRotation(M_PI);
}];
[UIView addKeyframeWithRelativeStartTime:0.5 relativeDuration:0.25 animations:^{
self.buttonImageView.transform= CGAffineTransformMakeRotation(-2* M_PI);
}];
} completion:^(BOOL finished) {
[self.map setCenterCoordinate:self.map.userLocation.location.coordinate animated:YES];
self.buttonImageView.transform= CGAffineTransformMakeRotation(2* M_PI);
}];
- 1. iPhone:以編程方式按下按鈕
- 2. 如何旋轉UI中的按鈕以使用CSS懸停從0度旋轉至360度?
- 3. 以編程方式按下按鈕
- 4. 以編程方式按下此按鈕
- 5. iPhone,如何以編程方式觸發按鈕事件
- 6. 如何以編程方式控制iphone電源按鈕?
- 7. 如何以編程方式模擬iPhone的Home和Power按鈕?
- 8. iPhone:如何以編程方式刪除按鈕背景圖片?
- 9. 如何以編程方式生成按鈕名稱按鈕
- 10. 旋轉360度
- 11. 如何以360度旋轉3D視圖?
- 12. 如何以編程方式在iPhone中將圖像旋轉90度?
- 13. 如何ImageView在360度中心旋轉?
- 14. 如何在iphone中以編程方式在uiview中創建按鈕
- 15. 如何以編程方式更改圖像按鈕透明度?
- 16. 以編程方式居中按鈕
- 17. 以編程方式編寫android:按鈕
- 18. iPhone SDK:如何以編程方式確定哪個按鈕被按下?
- 19. 如何在iPhone中旋轉QTVR圖像360度?
- 20. Windows Phone:如何以編程方式按下按鈕背景?
- 21. 如何以編程方式按QML按鈕?
- 22. 如何以編程方式按下提示確定按鈕?
- 23. 如何使按鈕以編程方式按順序閃爍
- 24. 如何使用C#SendKeys以編程方式按Windows按鈕
- 25. 如何以編程方式在iPhone的UINavigationbar中創建三個按鈕?
- 26. 如何在iphone中以編程方式實現帶有backgroundimage的按鈕
- 27. 360度旋轉3
- 28. 旋轉NSView 360度
- 29. CSS旋轉360度
- 30. CATransform3DRotate旋轉360度
@rushi不工作 – 2013-03-23 10:30:39
抱歉rushi,我剛剛編輯了代碼並進行了測試。現在檢查一下。根據您的要求調整旋轉角度。 – 2013-03-23 10:43:01