[英]how can i do UIView animateWithDuration in viewDidLoad? ios7
我在viewDidAppear中嘗試此操作,但是我有一秒鍾的延遲=(我該怎么辦?在viewDidLoad中工作?
-(void)viewDidAppear:(BOOL)animated{
fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
fullRotation.fromValue = [NSNumber numberWithFloat:0];
fullRotation.toValue = [NSNumber numberWithFloat:((720*M_PI)/360)];
fullRotation.duration = 5;
// fullRotation.repeatCount = 1e10f;
[_propImaCirculoCompleto.layer addAnimation:fullRotation forKey:@"360"];
}
您不應在viewDidLoad
進行任何動畫處理,因為該視圖尚無超級視圖,因此該動畫無關緊要。
對您的代碼示例的幾點思考:
您可以使用viewDidAppear
,只要每次視圖出現時都需要動畫即可,而不僅僅是在第一次出現時。
不需要在動畫塊中使用Core Animation。 做一個或另一個。
建議
如果您要對由其他視圖控制器管理的視圖的外觀進行動畫處理,則呈現控制器負責動畫。 有幾種方法可以實現此功能,具體取決於您的最低iOS支持版本。
在iOS 5+中,您可以使用自定義容器控制器向子視圖控制器顯示已定義的動畫。
在iOS 7中,您可以使用'presentViewController:animated:completion'並指定自定義動畫。 然后,您將設置transitioningDelegate
屬性,並讓委托為過渡提供動畫效果。
我還沒有准備好上面的示例代碼,但這就是我要看的。
嘗試將動畫分成兩個180度旋轉。 似乎iOS 7是惰性的並且不會360度旋轉:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.