【问题标题】:status bar is overlapping with the view in iOS7状态栏与 iOS7 中的视图重叠
【发布时间】:2013-09-20 06:12:19
【问题描述】:

状态栏与视图重叠 如何在iOS7中设置状态栏下方的视图 我使用的是 XIB 而不是故事板

【问题讨论】:

标签: objective-c ios7 xcode5


【解决方案1】:

我使用以下代码来解决问题。

- (void) viewDidLayoutSubviews {
    CGRect viewBounds = self.view.bounds;
    CGFloat topBarOffset = self.topLayoutGuide.length;
    viewBounds.origin.y = topBarOffset * -1;
    self.view.bounds = viewBounds;
}

【讨论】:

  • 我发现这是解决此问题的最佳解决方案。适用于纵向和横向以及隐藏状态栏时。
【解决方案2】:

在 iOS 7.0 中,UI 状态栏是透明的,为了适应应用程序中的变化,您可以使用状态栏样式:

 UIStatusBarStyleDefault

状态栏变暗而内容浅

 UIStatusBarStyleLightContent

如果在应用程序中查看的背景图像出现问题,其中图像在状态栏后面扩展。使用 Image 上的尺寸以 nib 或编程方式(以适合您的方式)显式设置图像。

有关 UI 更改的更多参考信息,请参阅 Apple 的本指南。 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TransitionGuide/TransitionGuide.pdf

【讨论】:

    【解决方案3】:

    试试这个

     if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;   // iOS 7 specific
    

    您需要在 -(void)viewDidLoad 方法中添加上述内容。

    【讨论】:

      【解决方案4】:

      试试这个:

      如果你想从 plist 中禁用状态栏,试试这个:

         Status bar is initially hidden : YES
         View controller-based status bar appearance : NO
      

      这对于 iOS 7 是必需的,对我有用。在 info.plist 中设置这两个标签。

      每当您的视图控制器出现时,在 viewDidLoad 中或当图像选择器控制器完成时,请使用:

       - (void) imagePickerController:(UIImagePickerController *)picker1 didFinishPickingImage:       (UIImage *)image editingInfo:(NSDictionary *)editingInfo
        {
            [[UIApplication sharedApplication] setStatusBarHidden:YES];
      
         .
         .
         .
         .
        }
      

      【讨论】:

        猜你喜欢
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多