代码之家  ›  专栏  ›  技术社区  ›  JOM agenthunt

如何知道状态栏大小何时更改(iPhone)

  •  3
  • JOM agenthunt  · 技术社区  · 16 年前

    我有 带2个选项卡的UITabBarController . 当状态栏大小发生变化时(emulator“Toggle In Call Status Bar”菜单项),一个可以调整大小。另一个没有。

    有问题的选项卡项包含 静态视图,动态加载 一个或另一个 看法 取决于某些事情。在进行此设置时,我发现主选项卡视图没有自动向我的动态子视图发送viewWillAppear和ViewWillEvalesh消息。

    @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];
    }
    

    我怎样才能得到 状态栏大小更改事件 进入我的动态子视图?“didChangeStatusBarFrame”不起作用,如其他地方所述。

    3 回复  |  直到 16 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    你看过吗 this question ?

    另外,我们是否可以使用 application:didChangeStatusBarFrame:

        2
  •  0
  •   Pieter Jongsma    15 年前

    您可以自己编程调整大小,但通常是通过使用“自动调整大小掩码”(UIView有一个属性(autoresizingMask)。

        3
  •  0
  •   Diogo Coelho    14 年前

    我不确定,但由于您是以编程方式添加这些视图,可能您忘记设置自动调整大小掩码。如果没有它,视图将不会在状态栏框架更改时自动调整大小。

    [newView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth];
    

    希望对你有帮助。