我的应用程序中有一个UINavigationController和一个UITabBar。
UINavigationController有一个半透明的黑色导航栏,如下所示:
在app delegate中:
[[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setAlpha:0.7];
我也隐藏了状态栏并在UINavigationBar的透明下半部分显示了我自己对状态栏的解释,如下所示:
self.navigationController.view.frame = CGRectMake(0,-22,320,480);
一旦应用程序加载,这个工作正常:UINavigationbar的下半部分是透明的,我可以在那里显示我自己的状态指示器。
但是,一旦我点击任何TabBar选项卡然后返回到原始控制器,就会发生以下两件事: 由UINavigationController管理的视图向下移动到从UINavigationBar的下半部分开始。 UINavigationBar不再透明。 这会将我的UI布局打破~20-22像素。
如何“说服”我的用户界面记住它的原始布局,而不是在选择不同标签时重置为想要的内容?
谢谢。
答案 0 :(得分:1)
我最好的建议是不要自定义构建所有内容,但由于您似乎要完成创建自定义视图的所有工作,我会尝试以下操作:
如果所有其他方法都失败了,那么当您调用代码以关闭新选项卡并返回到原始视图时,请重新运行用于设置视图的所有先前代码。如果您将所有代码更改为条形图“构造函数”中的视图,则可以使自己和系统更容易。
然后您需要做的就是
-(void)ChangeTabs
{
[UINavigationController dealloc];
[UINavigationController alloc];
[UITabView dealloc];
[UITabView alloc];
}
像这样简单的东西可以解决你的问题并且仍能高效运行。这取决于你,但我肯定会考虑转向后者,特别是如果你只是为了正确设置两个条而运行多个步骤。
希望这会对你有所帮助。