2011-01-06 11 views
0

ユーザーがボタンを押したときにUIViewが画面の下からスライドするUINavigationControllerがあります。kCATransitionMoveInを使用してUIViewでスライドするときのグリッチ

ビューの「隠し」プロパティをNOに設定した直後に、UINavigationControllerのビューは、アニメーションが既に終了したように、1つのフレームに対して完全に表示されることがあります。

これは示している/ビューを隠しコードである:層はあなたがアニメーションを追加層から除去/追加されたとき

- (void)showGUI: (bool)show 
{ 
CATransition *transition = [CATransition animation]; 
transition.duration = 0.5; 
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

if (!show) 
{ 
    transition.type = kCATransitionReveal; 
    transition.subtype = kCATransitionFromBottom; 
} 
else 
{ 
    transition.type = kCATransitionMoveIn; 
    transition.subtype = kCATransitionFromTop; 
} 

[navController.view.superview.layer addAnimation:transition forKey:nil]; 

navController.view.hidden = !show; 
} 

答えて

2

CATransitionアニメーションが適用されます。隠れたプロパティを切り替えることができない場合は、代わりにビューを削除してみてください。

+0

これは正しくありません。 – zrxq

+0

この場合、非表示のトグルが機能しませんでした。理由を提示できませんでした。私のソリューションはうまくいき、コメントを更新しました。次回より建設的になるようにしてください。 – logancautrell

+0

私はOPの問題は何もわかりませんでしたが、私の経験では 'hidden'は' Catransition'で完璧に動作しました。 – zrxq

関連する問題