2011-12-21 17 views
3

新しいビューが画面にプッシュされたときに非デフォルトのアニメーションを実装しました(下のコードを参照)。何らかの理由でこのコードを実装すると、UIActivityIndi​​catorViewsが機能しなくなりました。それらは画面に表示されますが、isAnimatingがtrueの場合でもアニメーション化されません。私がCATransitionを変更していることが原因だと考えていますが、UIActivityIndi​​catorViewの問題を修正する方法を理解することはできません。プッシュiPhone:CATransitionを変更するとUIActivityIndi​​catorViewのアニメーションが停止する

のviewDidLoadで、後に
CATransition* fade = [CATransition animation]; 
fade.duration = 1.0; 
fade.type = kCATransitionFade; 
fade.subtype = kCATransitionFromTop; 

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

ため

変更デフォルトのアニメーションは、私は、アニメーション

[spinner startAnimating]; 

を開始するが、スピナーがアニメーション表示されなくなります。何らかの理由で私は最初のスピナーはアニメイトしていますが、それ以降は何もありません。

答えて

-1

はちょうど
はちょうど私がテストしていますし、それが

+0

感謝私は自分の進歩の実装を回避策として使用していますが、なぜ問題が最初に発生したのかを知りたいのです。 – MikeIsrael

+0

はい私は私のプロジェクトであなたの実装を試して、私は同じ問題に直面しています。 – Hiren

+0

私の更新された答えを試してください – Hiren

3

を働いて押したりするときにカスタムアニメーションを持つようにUINavigationControllerのサブクラス内CATransitionを使用しているとき、私はこの問題に遭遇した1.0から0.3以下に、あなたの継続時間を変更しますビューコントローラをポップします。

この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で追加しなければならない。 –

+0

それは私のために働く –