【发布时间】:2026-02-12 23:15:01
【问题描述】:
当我在通话中测试我的应用程序时,状态栏会下推我的视图或应用程序。反正有没有让状态栏挂在我的视图上。这个问题最常见的解决方案是什么。
【问题讨论】:
标签: iphone iphone-sdk-3.0 ios4 objective-c++
当我在通话中测试我的应用程序时,状态栏会下推我的视图或应用程序。反正有没有让状态栏挂在我的视图上。这个问题最常见的解决方案是什么。
【问题讨论】:
标签: iphone iphone-sdk-3.0 ios4 objective-c++
当通话状态栏出现时,您的应用程序的窗口会调整其直接子视图的框架:它们的 frame.size.height 变小 20 点,它们的 frame.origin.y 变大 20 点。通常,您窗口的唯一直接子视图是您的根视图。所以根视图为通话状态栏“让出”空间,没有办法阻止这种行为。从技术上讲,您不能让状态栏“覆盖”您的其他视图。
但是,您可以让状态栏“看起来”像挂在您的应用程序上一样,通常这很容易做到。您所要做的只是调整根视图的所有直接子视图的自动调整大小行为,因此它们具有固定的底部边距和固定的内容高度,但具有灵活的顶部边距。您可以在 Interface Builder 中或以编程方式执行此操作。
但是,当您希望它们在自动调整大小的情况下(而不是拥有通话状态栏)表现不同时,这可能会产生副作用。
而且你永远不能让通话状态栏半透明,这样用户就可以通过状态栏看到你的应用程序的内容。
【讨论】:
这是 iOS 中的预期行为。我认为没有任何方法可以解决这个问题,如果有的话,我敢肯定苹果不会对你的应用试图解决这个问题感到高兴。
【讨论】: