UIWindow
2015-08-11 16:41
429 查看
UIWindow
标签(空格分隔): UIUIWindow的显示
创建窗口(程序自动创建窗口)self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor redColor];
加载Main.storyboard,并且创建storyboard描述的控制器
UIViewController *rootVc = [[UIViewController alloc] init];
把storyboard描述的控制器作为窗口的根控制器
self.window.rootViewController = rootVc;
显示窗口(在程序启动完成的时候,仅仅只是帮你创建好窗口,并不会马上显示。)
窗口要显示出来必须的步骤
1.强引用窗口
2.设置窗口的尺寸
[self.window makeKeyAndVisible];
窗口的层级
self.window.windowLevel = 1000;
窗口的显示看窗口的层级高低
相同层级的窗口,后创建的显示
通过storyboard手动加载控制器
先把项目的Main Interface清空/** * 应用程序加载完成的时候调用 */ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 创建窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 从storyboard加载控制器 UIStoryboard *sto = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; // 创建控制器 UIViewController *rootVc = [sto instantiateInitialViewController]; UIViewController *contr = [sto instantiateViewControllerWithIdentifier:@"VC"]; self.window.rootViewController = contr; // 显示窗口 [self.window makeKeyAndVisible]; return YES; }
通过Xib创建控制器
先把项目的Main Interface清空新建Xib文件
在Xib文件中拖一个UIView
修改
File's Owner的class为控制器的类名
需要把Xib上的View与控制器连线
// 创建窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 通过Xib创建控制器 UIViewController *rootVc = [[UIViewController alloc] initWithNibName:@"VC" bundle:nil]; self.window.rootViewController = rootVc; // 显示窗口 [self.window makeKeyAndVisible];
控制器的View
假设通过Xib创建XMGViewController控制器对象如果nibName为nil,首先会去查找
XMGView.xib,如果有,就会去加载XMGView.xib描述的控制器的view
如果没有找到,就会去找
XMGViewController.xib,如果有,也会去加载
都没有找到,就会
生成一个空的view
只要没有重写
loadView,系统就会自动判断有没有storyboard或者xib描述控制器的View,如果有就会去加载它们描述控制器的view
生成的默认的空View,默认几乎透明(alpha = 0.01)
如果一个VIew完全透明,可以直接穿透,点击后面的东西
如果当前控制器是窗口的根控制器,可以不设置尺寸
打印控制器的View的真实尺寸,一般不会在viewDidLoad方法中打印,因为不准确
// 在这个方法中打印View的真实尺寸 - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; NSLog(@"%@",NSStringFromCGRect(self.view.frame)); }
控制器的view是延迟加载的:用到时再加载
可以用
isViewLoaded方法判断一个UIViewController的view是否已经被加载
控制器的view加载完毕就会调用viewDidLoad方法
相关文章推荐
- iOS入门(二十四)UIView
- Version和Build的区别
- UIScrollView
- hdoj-1242-Rescue【广搜+优先队列】
- UIImageVIew
- UIButton&UILabel
- IOS第八天(4:UITableViewController新浪微博, 代码创建布局和数据转模型)
- UI初识
- Easyui 表格datagrid 的单元格内容显示方式扩展
- Easy UI的树形菜单的异步加载
- FlexBuilder远程调试WEB应用
- 控件学习---UIPageControl---摘自培训资料
- Halton Sequence 原理和代码实现
- 23-IO流-51-IO流(序列流-SequenceInputStream-枚举和迭代)
- 23-IO流-50-IO流(序列流-SequenceInputStream)
- UIScrollView或者UITableView 点击状态栏,回不到顶部的解决办法
- Druid数据库连接池的简单使用
- poj 3715 Blue and Red(二分图最大匹配+字典序输出)
- iOS基础-UIKit框架-高级视图-UIPickerView-实例2:城市选择(列与列之间有关系)
- Map四种获取key和value值的方法,以及对map中的元素排序