简析UIWindow

Snip20150707_4.png
Snip20150707_4.png
  • 添加UIView到UIWindow中两种常见方式:

  • -(void)addSubview:(UIView *)view;
    直接将view添加到UIWindow中,但并不会理会view对应的UIViewController

  • @property(nonatomic,retain) UIViewController *rootViewController;
    自动将rootViewController的view添加到UIWindow中,负责管理rootViewController的生命周期

  • 常用方法

  • -(void)makeKeyWindow;
    让当前UIWindow变成keyWindow(主窗口)

  • -(void)makeKeyAndVisible;
    让当前UIWindow变成keyWindow,并显示出来

  • [UIApplication sharedApplication].windows
    在本应用中打开的UIWindow列表,这样就可以接触应用中的任何一个UIView对象
    (平时输入文字弹出的键盘,就处在一个新的UIWindow中)

  • [UIApplication sharedApplication].keyWindow
    用来接收键盘以及非触摸类的消息事件的UIWindow,而且程序中每个时刻只能有一个UIWindow是keyWindow。如果某个UIWindow内部的文本框不能输入文字,可能是因为这个UIWindow不是keyWindow

  • view.window
    获得某个UIView所在的UIWindow

Snip20150707_5.png
Snip20150707_5.png
  • 代码示例:
    // 1.创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    
    self.window.backgroundColor = [UIColor redColor];
    
    // 2.创建窗口的根控制器
    UIViewController *rootVc = [[UIViewController alloc] init];
    rootVc.view.backgroundColor = [UIColor greenColor];
    
    //    UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeContactAdd];
    //    addBtn.center = CGPointMake(200, 200);
    //    [rootVc.view addSubview:addBtn];
    //    [self.window addSubview:rootVc.view];
    
    // 把控制器作为窗口的跟控制器,就会把跟控制器的view自动添加到窗口
    // 设置了窗口的根控制器,有旋转的功能
    self.window.rootViewController = rootVc;
    
    // 3.显示窗口
    [self.window makeKeyAndVisible];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,554评论 1 14
  • UIWindow是Cocoa框架的重要组件之一,所有的UIView都要通过UIWindow来进行展现,没有UIWi...
    文兴阅读 5,007评论 3 34
  • UIView的功能 负责渲染区域的内容,并且响应该区域内发生的触摸事件 UIWindow 在iOS App中,UI...
    小蘑菇2阅读 797评论 4 5
  • 废话不多说,直接上干货 ---------------------------------------------...
    小小赵纸农阅读 3,446评论 0 15
  • 从来都没有这一刻更坚信自己能可以 即使前方有再大的挫折 但属于我的仍旧是属于我的 这或许就是命运
    星期二的小明阅读 169评论 0 0