由于iPhone上的双高状态栏,我在布局方面遇到了很多问题。我的布局的组织方式为所有UIelements提供了所需的大小,为了处理双高状态栏,调整它们的大小使我的应用程序布局在正常使用中看起来很难看。
当出现双高状态栏时,是否有人可以建议是否有其他方法可以将布局向下推出屏幕?并且在正常使用中(没有双高状态栏)UI仍然看起来不错?
答案 0 :(得分:5)
通常,为了处理屏幕大小的变化,Autoresize规则非常重要(Autolayout在iOS 6中更灵活)。
这些规则定义了元素的位置和大小如何根据超视图的大小更改而变化。它们是通用规则,会影响上/左/下/右边距和宽度/高度,但在大多数情况下适用于大多数人。
您需要根据缩短的高度来确定您希望视图的外观,并在实现视图时将其考虑在内。如果Autoresize可以为您处理这个问题,那太好了!您可以在IB中(在选择视图时在标尺选项卡下)或通过代码:
应用它们view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
如果你的目标是iOS 6及更高版本,你也可以使用AutoLayout及其约束系统。
如果这不合适,那么当状态栏改变高度时,您可以按需执行自己的转换。这可以通过以下任一方式完成:
在App Delegate中实现这些委托方法:
application:willChangeStatusBarFrame:
application:didChangeStatusBarFrame:
观察这些通知
UIApplicationWillChangeStatusBarFrameNotification
UIApplicationDidChangeStatusBarFrameNotification