Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios iPhone双高状态栏导致布局问题_Ios - Fatal编程技术网

Ios iPhone双高状态栏导致布局问题

Ios iPhone双高状态栏导致布局问题,ios,Ios,由于iPhone上的双高状态栏,我在布局方面遇到了很多问题。我的布局的组织方式为所有UIElement提供了所需的大小,调整它们的大小以处理双高状态栏会使我的应用程序布局在正常使用时看起来很难看 当出现双高状态栏时,是否有其他方法处理向下推出屏幕的布局?在正常使用(没有双高状态栏)时,UI仍然看起来不错?通常,为了处理屏幕大小的变化,自动调整大小规则非常重要(在iOS 6中,自动布局更灵活) 这些规则定义了图元的位置和大小如何根据superview的大小变化而变化。它们是通用规则,影响上/左/下

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


当出现双高状态栏时,是否有其他方法处理向下推出屏幕的布局?在正常使用(没有双高状态栏)时,UI仍然看起来不错?

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

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

您需要决定缩短高度后视图的外观,并在实现视图时考虑到这一点。如果Autoresize能帮你解决这个问题,那太好了!您可以在IB中(选择视图时在标尺选项卡下)或通过代码应用它们:

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
如果您的目标是iOS 6及以上版本,还可以使用AutoLayout及其约束系统

如果这不合适,那么当状态栏更改高度时,您可以根据需要执行自己的转换。这可以通过以下方式实现:

  • 在应用程序委派中实现这些委派方法:

    application:willChangeStatusBarFrame:
    application:didChangeStatusBarFrame:
    
  • 遵守这些通知

    UIApplicationWillChangeStatusBarFrameNotification
    UIApplicationDidChangeStatusBarFrameNotification
    

  • 什么是双高状态栏?双高状态栏是您在接听电话或使用iOS内置连接时使用应用程序时得到的。如果您使用自动调整大小掩码或自动布局,则UI的相对布局将保持不变,但只需调整为更小。如果两者都不使用,则UI将无法根据屏幕边界的变化进行调整,并且看起来很难看。因此,我的建议是确保您使用自动布局或正确设置自动调整大小的遮罩。您可以检查(投票数较多的那一个,而不是选定的那一个)它非常有效如果这个答案适合您的需要,您能接受吗?谢谢