我怎么能在viewDidLoad中做UIView animateWithDuration? IOS 7

时间:2013-09-26 16:42:48

标签: ios objective-c xcode animation

我在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"];


}

2 个答案:

答案 0 :(得分:5)

你不应该在viewDidLoad中做任何动画,因为视图还没有超视图,所以动画无关紧要。

关于代码示例的一些想法:

  • 只要您想要动画,就可以使用viewDidAppear 视图出现的时间,而不仅仅是第一次出现。

  • 不需要在动画块中使用Core Animation。做其中一个。

<强>建议

如果您尝试为由其他视图控制器管理的视图的外观设置动画,则呈现控制器负责动画。根据您支持的最低iOS版本,有几种方法可以实现此目的。

  • 在iOS 5+中,您可以使用自定义容器控制器来呈现具有已定义动画的子视图控制器。

  • 在iOS 7中,您可以使用'presentViewController:animated:completion'并指定自定义动画。然后,您将设置transitioningDelegate属性并让委托人为过渡提供动画制作。

我没有上面的示例代码,但这就是我要看的内容。

答案 1 :(得分:-1)

尝试将动画分割两个180度旋转。似乎iOS 7很懒,并且不会被360旋转:)