【问题标题】:iPhone double high status bar causing layout issuesiPhone双高状态栏导致布局问题
【发布时间】:2013-07-16 03:59:20
【问题描述】:

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

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

【问题讨论】:

  • 什么是双高状态栏?
  • 双高状态栏是您在接听电话或使用 iOS 内置网络共享时使用应用程序时得到的。
  • 如果您使用自动调整蒙版或自动布局,那么您的 UI 的相对布局将保持不变,只是调整为更小。如果您两者都不使用,那么 UI 将不会适应屏幕边界的变化并且看起来很丑。所以我的建议是确保你使用自动布局或正确设置你的自动调整蒙版。
  • 你可以查看this other answer(票数多的,不是被选中的)效果很好

标签: ios


【解决方案1】:

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

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

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

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

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

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

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

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

    UIApplicationWillChangeStatusBarFrameNotification
    UIApplicationDidChangeStatusBarFrameNotification
    

【讨论】:

  • 如果这个答案适合您的需要,您能接受吗?谢谢
猜你喜欢
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多