how to fix status bar overlap issue in ios 7

后端 未结 4 1862
遇见更好的自我
遇见更好的自我 2020-12-06 14:36

I am developing an application that\'s working fine in IOS6. But in iOS7, the status bar overlaps with the view.

As an example :

相关标签:
4条回答
  • 2020-12-06 15:14

    Xcode has iOS 6/7 Deltas which is specifically made to resolve this issue. You have to moved your views 20 pixels down to look right on iOS 7 and in order to make it iOS 6 compatible, You changed Delta y to -20.

    enter image description here

    Resize the height of views properly on iOS 6 You had to set Delta height as well as Delta Y.

    You can see also this - Fix iOS 7 Status bar overlapping

    0 讨论(0)
  • 2020-12-06 15:19

    Try this code.use this code in your AppDelegate.m in did finishlaunching:

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    [application setStatusBarStyle:UIStatusBarStyleLightContent];
    self.window.clipsToBounds =YES;
    self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
    }
    
    0 讨论(0)
  • 2020-12-06 15:20

    This is the default behavior for UIViewController on iOS 7. The view will be fullscreen and the status bar will cover the top of the view. If you have navigationBar hidden, then you have to adjust all the UIView elements by shifting 20 points.

    0 讨论(0)
  • 2020-12-06 15:22
     -(void)viewWillLayoutSubviews{
    
     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) 
      {
        self.view.clipsToBounds = YES;
        CGRect screenRect = [[UIScreen mainScreen] bounds];
        CGFloat screenHeight = 0.0;
        if(UIDeviceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]))
            screenHeight = screenRect.size.height;
        else
            screenHeight = screenRect.size.width;
        CGRect screenFrame = CGRectMake(0, 20, self.view.frame.size.width,screenHeight-20);
        CGRect viewFr = [self.view convertRect:self.view.frame toView:nil];
        if (!CGRectEqualToRect(screenFrame, viewFr))
        {
            self.view.frame = screenFrame;
            self.view.bounds = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
        }
      }
    }
    
    0 讨论(0)
提交回复
热议问题