• iOS7Status bar适配


    一 Status bar重叠问题:

     Zherui

            if ([[[UIDevicecurrentDevice] systemVersion] floatValue] >= 7.0) {

                self.window.frameCGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);

    //            self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);

                UIApplication *myApp = [UIApplicationsharedApplication];

                [myApp setStatusBarStyle: UIStatusBarStyleLightContent];

            }

     然后 View controller-based status bar appearance --> NO

    完了

    方法一:隐藏Status bar   在plist里面增加2个变量  Status bar is initially hidden  -> YES   View controller-based status bar appearance -> NO

    方法二:改为和IOS6 一样的显示方式  

    1. Set UIViewControllerBasedStatusBarAppearance to NO in info.plist (To opt out of having view controllers adjust the status bar style so that we can set the status bar style by using the UIApplicationstatusBarStyle method.)

    2. In AppDelegate's application:didFinishLaunchingWithOptions, call

      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);
      
          //Added on 19th Sep 2013
          self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
      }

        方法三:

    Set UIViewControllerBasedStatusBarAppearance to NO in info.plist

    Pase this code in - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions method

    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);
    
                //Added on 19th Sep 2013
                NSLog(@"%f",self.window.frame.size.height);
                self.window.bounds = CGRectMake(0,0, self.window.frame.size.width, self.window.frame.size.height);
            }
    

    It may push down all your views by 20 pixels.To over come that use following code in -(void)viewDidAppear:(BOOL)animated method

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
            CGRect frame=self.view.frame;
            if (frame.size.height==[[NSUserDefaults standardUserDefaults] floatForKey:@"windowHeight"])
            {
                frame.size.height-=20;
            }
            self.view.frame=frame;
        }
    

    You have to set windowHeight Userdefaults value after window allocation in didFinishLauncing Method like

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [[NSUserDefaults standardUserDefaults] setFloat:self.window.frame.size.height forKey:@"windowHeight"];
    
    二  Navigation Bar重叠的问题:

    在页面刚生成的时候 initWithNibName 函数 或者其他函数中加一句话:

            if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
                self.edgesForExtendedLayout = UIRectEdgeNone;
            }
    显示方式就和IOS6 一致了。
  • 相关阅读:
    jQuery.extend()
    reconnecting-websocket.js
    网页防止嵌套
    mysql 一张表的多个字段关联另外一张表
    php把一些预定义的 HTML 实体转换为字符。
    weex用阿里矢量图
    nodeJS有多快
    关于jquery中prev()和next()的用法
    关于手动添加属性的方法总结
    关于一个div上下左右居中的css方法
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/3406264.html
Copyright © 2020-2023  润新知