【发布时间】: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