zoukankan      html  css  js  c++  java
  • 创建的UIWindow为何不显示

    一.window创建方法不同,导致window的显示不同

    1.window创建,但是不会显示

    1 UIWindow *myWindow3 = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    2 myWindow3.backgroundColor = [UIColor greenColor]; 
    3 myWindow3.windowLevel = 100; 
    4 myWindow3.hidden = NO; 
    5 [myWindow3 makeKeyWindow]; 
    6 NSLog(@"1当前所有的window %@",[UIApplication sharedApplication].windows); 

    2.window设置成员变量就能够显示window

    self.myWindow1 = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    self.myWindow1.backgroundColor = [UIColor redColor]; 
    self.myWindow1.windowLevel = -1; 
    self.myWindow1.hidden = NO; 

    3.如果创建window的单例,也可以显示window

    + (ShowWindow *)shareShowWindow 
    { 
    static ShowWindow *window = nil; 
    static dispatch_once_t onceToken; 
    dispatch_once(&;onceToken, ^{ 
    if (window == nil) { 
    window = [[ShowWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    } 
    }); 
    return window; 
    } 
    - (void)test5 
    { 
    ShowWindow *window = [ShowWindow shareShowWindow]; 
    [window show]; 
    } 

    二:总结

      1.通过以上的实验可以总结出,并不是只有成员变量才可以,单例也可以,他们的共同点就是生命周期足够长。  

      2.必须在创建之后添加方法:[self.myWindow makeKeyWindow];

      3.[self.myWindow makeKeyWindow]方法的作用:让当前UIWindow变成keyWindow(主窗口,只有一个主窗口),并显示出来。

      4.如果没有加入[self.myWindow makeKeyWindow]方法依然可以点击显示,但是需要经过多次点击后,也可以成为主窗口展示,体验较差,所以必须加入该方法。

    by:LM

  • 相关阅读:
    我的WCF之旅(1):创建一个简单的WCF程序
    网页设计中颜色的搭配
    CSS HACK:全面兼容IE6/IE7/IE8/FF的CSS HACK
    UVa 1326 Jurassic Remains
    UVa 10340 All in All
    UVa 673 Parentheses Balance
    UVa 442 Matrix Chain Multiplication
    UVa 10970 Big Chocolate
    UVa 679 Dropping Balls
    UVa 133 The Dole Queue
  • 原文地址:https://www.cnblogs.com/widgetbox/p/9055242.html
Copyright © 2011-2022 走看看