我在 viewDidAppear 中尝试了这个,但我有一秒钟的延迟 =( 我能做什么?在 viewDidLoad 中工作?
-(void)viewDidAppearBOOL)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
中做任何动画,因为 View 还没有 super View ,所以动画是无关紧要的。
对您的代码示例的一些想法:
你可以使用 viewDidAppear
只要你想要动画
View 出现的时间,而不仅仅是第一次出现。
没有必要在动画 block 中使用核心动画。做一个或另一个。
建议
如果您尝试为由不同 View Controller 管理的 View 的外观设置动画,则呈现 Controller 负责动画。有几种方法可以实现这一点,具体取决于您支持的最低 iOS 版本。
在 iOS 5+ 中,您可以使用自定义容器 Controller 来呈现具有定义动画的 subview Controller 。
在 iOS 7 中,您可以使用 'presentViewController:animated:completion' 并指定自定义动画。然后,您将设置 transitioningDelegate
属性并让委托(delegate)提供过渡动画。
我没有准备好上面的示例代码,但这就是我要研究的。
关于ios - 如何在 viewDidLoad 中执行 UIView animateWithDuration? IOS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033942/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |