2

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


}
4

2 回答 2

5

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

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

  • 您可以viewDidAppear在每次视图出现时使用动画,而不仅仅是第一次出现。

  • 不需要在动画块中使用核心动画。做一个或另一个。

建议

如果您尝试为由不同视图控制器管理的视图的外观设置动画,则呈现控制器负责动画。有几种方法可以实现这一点,具体取决于您支持的最低 iOS 版本。

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

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

我没有准备好上面的示例代码,但这就是我要看的。

于 2013-09-26T17:16:13.037 回答
-1

尝试通过两个 180 度旋转分割您的动画。似乎 iOS 7 很懒惰,不能旋转 360 度 :)

于 2013-09-26T17:08:06.537 回答