使用kCATransitionMoveIn在UIView中滑动时出现故障

时间:2011-01-06 14:51:24

标签: ios uiview uinavigationcontroller catransition

我有一个UINavigationController,当用户按下按钮时,UIView会从屏幕底部滑入。

在我将视图的“隐藏”属性设置为NO之后,UINavigationController的视图有时会在一帧中完全就位,就像动画已经完成一样。

这是显示/隐藏视图的代码:

- (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;
}

1 个答案:

答案 0 :(得分:2)

在从添加动画的图层添加/删除图层时应用CATransition动画。如果切换隐藏属性不起作用,请尝试删除视图。