繁体   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