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