我有 UITabBarController,带有2个标签。当StatusBar大小改变时,一个调整大小很好(仿真器“切换呼叫状态栏”菜单项)。另一个没有。
有问题的标签页项目包含静态视图,可根据具体情况动态加载一个或另一个视图。在让这个设置工作的同时,我发现主标签视图没有自动发送,例如viewWillAppear和viewWillDisappear消息到我的动态子视图。
Apple docs解释说这是因为系统无法识别动态添加的视图。
@interface MyTabViewController : UIViewController
{
UIView *mainView;
FirstViewController *aController;
SecondViewController *bController;
}
...
if (index == 0)
{
self.aController = [[FirstViewController alloc]
initWithNibName:@"FirstViewController" bundle:nil];
[self.mainView addSubview:aController.view];
[self.aController viewWillAppear:YES];
}
如何将 StatusBar尺寸更改事件添加到动态子视图中? “didChangeStatusBarFrame”不起作用,如其他地方所述。
答案 0 :(得分:0)
你看过this question吗?
另外,我们可以使用application:didChangeStatusBarFrame:
看到您的App Delegate代码吗?
答案 1 :(得分:0)
你可以自己编写一个调整大小,但通常这是通过使用“自动调整大小掩码”来完成的。 (UIView有一个属性autoresizingMask)。
答案 2 :(得分:0)
我不确定,但由于您以编程方式添加了这些视图,因此您可能忘记设置自动调整大小的掩码。如果没有它,状态栏框架更改时视图将不会自动调整大小。
[newView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];
我希望它有所帮助。