【发布时间】:2012-02-05 12:44:19
【问题描述】:
我有一个具有 UITabBarController 的应用程序,当按下不同的选项卡时,我会覆盖 viewWillAppear,获取对 tabBarController 的引用,然后调整其框架的大小。这样做的原因是一些选项卡需要屏幕的整个高度,而其他选项卡的背景在顶部 120 像素中。
我引用 tabBarcontroller 的方式是获取应用程序委托并使用它对 tabBarController 的引用来移动其位置:
MyAppDelegate *del= [UIApplication sharedApplication].delegate; del.tabBarController.view.frame = CGRectMake(0,120,320,360);
这种方法在选项卡之间切换时效果很好,但是在应用程序第一次加载时,它的操作有点奇怪,我不明白为什么。我的第一个选项卡实际上有一个 NavigationBar,然后包含一个具有 pickerView 的视图。我的应用程序第一次加载时,NavigationBar 出现了大约 10px 太低,但是 pickerView 仍然出现在正确的位置。我希望在第一次调用 viewWillAppear 时可以通过不同的处理方式来解决这个问题,但是如果我减小 y 位置以补偿导航栏,它会将所有内容一起移动,包括视图中的日期选择器。
我想了解为什么应用程序在首次加载时表现不同,并希望有人可以向我解释这一点并提供有关如何解决问题的任何想法,或者请指出正确的方向。我怀疑这与顶部的状态栏有关,因为它与我看到的偏移量大致相同..
任何帮助将不胜感激! 谢谢
【问题讨论】:
标签: ios5 uitabbarcontroller uinavigationbar uiapplicationdelegate