0

ユーザーがボタンを押すと、画面の下部から UIView がスライドする UINavigationController があります。

ただし、ビューの「非表示」プロパティを 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;
}
4

1 に答える 1

2

CATransitionアニメーションは、アニメーションを追加するレイヤーにレイヤーが追加/削除されるときに適用されます。非表示のプロパティを切り替えても機能しない場合は、代わりにビューを削除してみてください。

于 2011-07-18T21:21:53.407 に答える