2011-02-13 38 views
0

当我在通话状态下测试我的应用程序时,状态栏将我的视图或应用程序按下。无论如何,有状态栏挂在我的视图上。什么是这个问题最常见的解决方案。iPhone编程通话状态栏

回答

3

当通话状态栏出现时,您的应用程序的窗口会调整其直接子视图的帧:它们的frame.size.height会减少20点,并且它们的frame.origin.y会变大20点。通常,您的窗口的唯一直接子视图就是您的根视图。所以根视图会为通话状态栏“产生”空间,并且没有办法阻止这种行为。从技术上讲,你不能让状态栏“悬挂”你的其他视图。

但是,您可以让状态栏看起来像挂在应用程序上,通常可以轻松完成。您所要做的只是调整根视图的所有直接子视图的自动调整行为,因此它们具有固定的底部边距和固定的内容高度,但具有灵活的顶部边距。您可以在Interface Builder中或以编程方式执行此操作。

但是,如果您希望它们在具有通话状态栏以外的自动识别情况下表现不同,则可能会产生副作用。

而且您永远无法使通话状态栏变成半透明状态,因此用户可以通过状态栏查看应用程序的内容。

+0

界面构建器中的这个设置在哪里? – Vikings 2011-02-19 04:00:04

0

这是iOS中的预期行为。我不认为有什么办法可以解决这个问题,如果有的话,我肯定苹果不会为你的应用试图绕过它而感到高兴。