• iOS基础篇 UIWindow的简单介绍


      UIWindow是本质也是一个UIView,但是 TA 比较的特殊,因为在一个app中永远都只会出现一个UIWindow,而且你在创建项目的时候,无论是空模板还是其他的,Xcode肯定会帮你创建好一个UIWindow。有了UIWindow,再把创建好的UIView添加到UIWindow上,这样运行后就能看到view在屏幕上显示了。

      一个iOS的小程序之所以能在屏幕上显示,完全是因为它有UIWindow。如果没有UIWindow,那么你做的再好看,运行起来都是看不到任何东西的,就黑黑的一片。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 创建一个窗口对象,并且和屏幕大小一样
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        
        // 设置窗口的背景色为白色
        self.window.backgroundColor = [UIColor colorWithRed:arc4random() % 256  / 255.0 green:arc4random() % 256 / 255.0 
        blue:arc4random() % 256 / 255.0 alpha:1.0]; // 初始化与窗口等大的视图 // 讲window比作画板的话,次试图就是画板上的画纸 // 创建一个UIView对象的过程 // 1、初始化,并且指定大小 UIView containerView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // 2、设置背景颜色 // 视图如果不给定背景色,默认是透明色 containerView.backgroundColor = [UIColor whiteColor]; // 添加显示,讲视图View添加到window上面进行显示 [self.window addSubview:containerView]; // 让窗口成为应用程序的主窗口(唯一窗口),并且可见 [self.window makeKeyAndVisible]; return YES; }

      上面的代码是利用空模板创建的,就只有AppDelegate,连ViewController都没有,新版本的Xcode不自带空模板,需要的朋友可以去github上面下载空模板,然后放到Xcode里面去。

      把view添加到UIWindow上面的方法有两种,第一种就是上面那种,[self.window addSubview:containerView],还一种是 self.window.rootViewController = containerView,两种方法都可以使用,建议使用第二种,因为第一种存在一些问题,比如说控制器上面可能由按钮,需要监听按钮的点击事件,如果是1,那么按钮的事件应该由控制器来进行管理。但控制器是一个局部变量,控制器此时已经不存在了,但是控制器的view还在,此时有可能会报错。注意:方法执行完,这个控制器就已经不存在了。不通过控制器的view也可以做开发,但是在实际开发中,不要这么做,不要直接把view添加到UIWindow上面去。因为,难以管理。

  • 相关阅读:
    C# 冒泡排序
    C# IO流 File.Exists,Directory.Exists, File.Create,Directory.CreateDirectory
    UGUI 哪些显示在前方的问题
    UGUI Image血条或者进度条效果
    Unity 切换场景的时候让某个游戏对象不消失
    C# string型的转换成float型的
    Json 解析Json
    logging模块

    模块和包
  • 原文地址:https://www.cnblogs.com/shensq/p/5204107.html
Copyright © 2020-2023  润新知