由于 iPhone 上的双高状态栏,我在布局方面遇到了很多问题。我的布局的组织方式为所有 UI 元素提供所需的大小,调整它们的大小以处理双高状态栏会使我的应用程序布局在正常使用中看起来很难看。
请有人建议是否有任何替代方法来处理出现双高状态栏时向下推出屏幕的布局?并且在正常使用时(没有双高状态栏)UI 看起来仍然不错?
最佳答案
通常,为了处理屏幕尺寸的变化,自动调整大小规则非常重要(自动布局在 iOS 6 中更加灵活)。
这些规则定义了元素的位置和大小如何根据父 View 的大小变化而变化。它们是通用规则,会影响上/左/下/右边距以及宽度/高度,但在大多数情况下适用于大多数人。
您需要决定高度缩短后 View 的外观,并在实现 View 时考虑到这一点。如果 Autoresize 可以为您解决这个问题,那就太好了!您可以在 IB 中(选择 View 时在标尺选项卡下)或通过代码应用它们:
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
如果您的目标是 iOS 6 及更高版本,您还可以使用 AutoLayout 及其约束系统。
如果这不合适,那么当状态栏改变高度时,您可以根据需要执行自己的转换。这可以通过以下任一方式完成:
在您的应用程序委托(delegate)中实现这些委托(delegate)方法:
application:willChangeStatusBarFrame: application:didChangeStatusBarFrame:
观察这些通知
UIApplicationWillChangeStatusBarFrameNotification UIApplicationDidChangeStatusBarFrameNotification
关于ios - iPhone双高状态栏导致布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195428/