簡體   English   中英

如何在viewDidLoad中執行UIView animateWithDuration? IOS 7

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM