2011-12-21 61 views
3

我已经实现了一个非默认的动画,当一个新的视图被推送到屏幕上(见下面的代码)。由于某种原因,一旦我实现了这个代码,它导致我的UIActivityIndi​​catorViews停止工作。它们会在屏幕上显示,但即​​使它们的动画是真实的,也不会生成动画。我认为这是因为我改变了CATransition,但无法弄清楚如何解决它的UIActivityIndi​​catorView。iPhone:改变CATransition导致UIActivityIndi​​catorView停止动画

推送

CATransition* fade = [CATransition animation]; 
fade.duration = 1.0; 
fade.type = kCATransitionFade; 
fade.subtype = kCATransitionFromTop; 

[self.navigationController.view.layer 
addAnimation:fade forKey:kCATransition]; 

后来在viewDidLoad中更改默认的动画我开始动画

[spinner startAnimating]; 

但微调会显示,而不是动画。出于某种原因,第一个微调我有动画,但在那之后什么也没有。

回答

-1

只是改变你的持续时间从1.0到0.3以下
只是我正在测试它的工作

+0

谢谢我有我自己的进度实施,我正在使用的解决方法,但仍然想知道为什么问题是在第一个地方引起的。 – MikeIsrael 2011-12-21 13:10:31

+0

是的,我也尝试在我的项目中实施,我面临同样的问题。 – Hiren 2011-12-21 13:20:32

+0

尝试我更新的答案 – Hiren 2011-12-21 13:25:08

3

使用CATransition时的UINavigationController的一个子类中有一个自定义动画推或当我遇到这个问题弹出视图控制器。

这里面的UINavigationController的子类的方法,我有这样的代码:

- (void)addCustomTransition 
{ 
    CATransition* transition = [CATransition animation]; 
    transition.duration = kAnimationDuration; 
    transition.timingFunction = 
    [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionFade; 
    [self.view.layer addAnimation:transition forKey:nil]; 
} 

不过,后来我才知道你也有同样的动画添加到推/弹出的viewController的视图的层:

- (void)addCustomTransitionToViewController:(UIViewController *)viewController 
{ 
    CATransition* transition = [CATransition animation]; 
    transition.duration = kAnimationDuration; 
    transition.timingFunction = 
    [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionFade; 
    [self.view.layer addAnimation:transition forKey:nil]; 
    [viewController.view.layer addAnimation:transition forKey:nil]; // this is what was missing 
} 

这个推/视图控制器的视图是有一个UIActivityIndi​​catorView没有正确动画的。

希望这会有所帮助!

+0

我只是意识到你的问题已经快2岁了。我必须添加这在iOS 6中工作。 – 2013-07-29 20:40:19

+0

它适用于我 – 2013-08-21 07:53:50

相关问题