当我转动我的个人热点时,布局被打破了

时间:2014-05-15 04:38:46

标签: ios iphone

当我关闭个人热点时,我的布局被打破了,当我的个人热点开启时,我的个人热点关闭时布局保持不变。任何建议请。

3 个答案:

答案 0 :(得分:3)

personal-hotspot开启时,会调用notification,抓住它并根据需要更改布局

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(statusBarFrameWillChange)
                                                 name:UIApplicationWillChangeStatusBarFrameNotification
                                               object:nil];

个人热点已开启,statusBar的高度为40

个人热点已关闭,statusBar的高度为20

答案 1 :(得分:0)

在Appdelegate.m文件中添加以下Notification方法,检查状态栏框架是否已更改(如果更改了框架)。

  • (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame {

}

答案 2 :(得分:0)

我希望这可以帮助别人。

我在处理旧应用程序时看到了类似的问题。它没有自动布局,它在scrollview中有很多子视图。多个类视图放在上面。 我意识到了根本原因。 未启用热点时,假设View控制器视图设置为origin(0,0)。现在,如果您启用热点。状态栏高度更改为40,self.view原点更改为(0,20)。因此,如果使用self.view.frame初始化每个子视图帧将向下移动20 px。要解决这个问题。我没有改变整个代码。相反,我将更改放在

-(void)viewDidLayoutSubviews(){} /**method.

我明确地将子视图设置为origin(0,0)。 然后,它可以工作,而不是启用任何状态栏更改通知。如果您的内容正确放置。它会自动调整。