在通话状态栏中进行iPhone编程

时间:2011-02-13 23:22:42

标签: iphone iphone-sdk-3.0 ios4 objective-c++

当我在通话情况下测试我的应用程序时,状态栏会按下我的视图或应用程序。反正有状态栏挂在我的视图上。这个问题最常见的解决办法是什么。

2 个答案:

答案 0 :(得分:3)

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

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

但是,这可能会产生副作用,当您希望它们在自动调整情况时的行为方式不同于具有通话状态栏。

您永远不能让通话状态栏保持半透明状态,以便用户可以通过状态栏查看应用程序的内容。

答案 1 :(得分:0)

这是iOS中的预期行为。我认为没有任何方法可以解决这个问题,如果有的话,我相信苹果不会对你的应用试图绕过它感到高兴。