【问题标题】:UITabBarController, animation causes sliding of other views without a UINavigationControllerUITabBarController,动画导致没有 UINavigationController 的其他视图滑动
【发布时间】:2026-01-06 03:20:03
【问题描述】:

我的基于 TabBar 的应用程序遇到了动画问题(我认为)。我有四个标签栏项目,其中三个有 UINavigationControllers,其中一个只有一个常规视图控制器。问题是,在更改为带有动画的视图后,没有 UINavigationController 的第一个选项卡在更改栏时似乎不再具有正确的大小/位置。

最初,您可以毫无问题地遍历所有四个选项卡,但在使用动画视图后,第一个视图将出现一个向下滑动的动画,就好像它的位置不正确一样。相反,其他视图在激活时会“向上滑动”大约 20px。我的第一个视图没有在 IB 中自动调整大小,它的高度与其他视图相同。我也尝试将其高度填充 44px(导航栏的高度),但效果相同。

此外,一旦此错误生效,如果第一次激活另一个视图;它以一种奇怪的动画方式出现,其各个元素从左下角开始生长并移动到位。

感谢任何建议,我倾向于相信它与没有导航控制器的视图的高度或大小有关;或者我的一个视图上的动画没有被正确取消。该视图有以下尝试阻止它(但它不起作用):

-(void)viewWillDisappear:(BOOL)animated {  
  [UIView beginAnimations:nil context:NULL];  
  [UIView setAnimationBeginsFromCurrentState:YES];  
  [UIView setAnimationDuration:0.1];  
  [UIView setAnimationCurve: UIViewAnimationCurveLinear];  
  [UIView commitAnimations];  

  [super viewWillDisappear:false];  
}

【问题讨论】:

    标签: iphone animation uinavigationcontroller uitabbarcontroller


    【解决方案1】:

    问题与不同的观点无关。我打开了一个动画块,并没有关闭它。这不会被捕获为语法错误,但会在每次转换时产生永无止境的动画。如果您看到滑动视图,我建议您查看任何有动画的地方,并确认该块已关闭。

    【讨论】:

      最近更新 更多