2

由于 iPhone 上的双高状态栏,我在布局方面遇到了很多问题。我的布局以一种为所有 UI 元素提供所需大小的方式组织,调整它们的大小以处理双高状态栏使我的应用程序布局在正常使用中看起来很丑。

请任何人都可以建议当双高状态栏出现时是否有任何替代方法来处理被向下推到屏幕外的布局?并且在正常使用中(没有双高状态栏)UI看起来还不错?

4

1 回答 1

5

通常为了处理屏幕大小的变化,自动调整大小规则非常重要(自动布局在 iOS 6 中更加灵活)。

这些规则定义了元素的位置和大小如何根据父视图的大小变化而变化。它们是通用规则,会影响顶部/左侧/底部/右侧边距和宽度/高度,但在大多数情况下适用于大多数人。

你需要决定你希望你的视图看起来像什么高度缩短,并在实现你的视图时考虑到这一点。如果 Autoresize 可以为您处理这个问题,那就太好了!您可以在 IB 中应用它们(在选择视图时在标尺选项卡下),或通过代码:

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

如果您的目标是 iOS 6 及更高版本,您还可以使用 AutoLayout 及其约束系统。

如果这不合适,那么您可以在状态栏更改高度时按需执行自己的转换。这可以通过以下任一方式完成:

  1. 在您的 App Delegate 中实现这些委托方法:

    application:willChangeStatusBarFrame:
    application:didChangeStatusBarFrame:
    
  2. 观察这些通知

    UIApplicationWillChangeStatusBarFrameNotification
    UIApplicationDidChangeStatusBarFrameNotification
    
于 2012-11-02T15:17:59.910 回答