Window 学习笔记(一)
来源:互联网 发布:可以做生意的软件 编辑:程序博客网 时间:2024/04/30 08:05
参考资料:点击打开链接;点击打开链接
理解window和screen
一个app通常只有一个window,但是如果需要有其它的独立于外的window,也可以创建。在ios中,window是没有title bar,close boxes,或者其它可视化的元素的。用户看不到,也无法关闭或者移动这个window。
window的作用:
It contains your app’s visible content. 包含可视化内容
It plays a key role in the delivery of touch events to your views and other app objects. 点击事件的传递
It works with your app’s view controllers to handle orientation changes. 和view controller一起处理方向,比如旋转。
A Window’s Root View Contains Your Content
一个window包含一个root view controller来包含所有的视图显示。使用一个root viewcontroller的方式简化了改变接口的处理。因为如果想展示新的内容,需要做的只是简单更换旧的root viewcontroller就可以了。 为window提供root view的最简单的方式就是使用storyboard来定义你的用户接口。方法如下:
当创建新的工程的时候,会有一个默认的main storyboard。如果没有,你也可以手动创建一个新的storyboard,并且在plist文件中设置对应的main storyboard。这种方式下,ios已经做了几个初始化的任务:
Instantiates a window. 实例化一个window
Loads the main storyboard and instantiates its initial view controller. 加载main storyboard并且实例化他的初始view controller。
Assigns the new view controller to the window’s
rootViewController
property and then makes the window visible. 将新的view controller分配给window的rootviewconroller属性并且显示window。
如果你使用nib而不是storyboard来创建app的ui,你需要确定在程序launch的时候,设置window的root viewcontroller。
window.rootViewController = myViewController;
在你需要创建window的时候,可以使用以下的方法来创建。
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
myViewController = [[MyViewController alloc] init];
window.rootViewController = myViewController;
[window makeKeyAndVisible];
return YES;
}
当手动创建window的时候,需要将她的size设置为满屏幕的。不要裁剪window的frame。
The Key Window Receives Certain Events
在app运行的任何时刻只有一个 window是key window。大多数情况下,app的window会成为key window。因为ios使用独立的windows来显示例如alert views,input accessory views,这些window也可以称为key window。例如,当一个alert 或者 input accessory view有一个text field的时候,这个window就会变为key window。
Most App Windows Exist at the Same Level
当你创建了一个新window,一般会被自动分配normal window level。
A Window Is Associated with One Device Display
uiwindow的screen属性描绘了当前显示的window的特定设备显示。他是uiscreen类的一个属性,包含设备展示信息,比如他的尺寸,mode,亮度等信息。screen对象还包含几个通知来得知设备展示的变化。比如,当显示的mode或者亮度发生变化时,你可以注册通知来侦测。
Window Notifications Help You Monitor Changes
iOS定义了几个通知来侦测window和screen的变化。这些通知对于要支持独立外部window的情况很有用。uiwindow定义了如下的通知:
UIWindowDidBecomeVisibleNotification
UIWindowDidBecomeHiddenNotification
UIWindowDidBecomeKeyNotification
UIWindowDidResignKeyNotification
当你的app进入到后台后,这些通知不会传递。因为尽管你的window在后台的时候没有显示,但是他仍然被视为在你的app context中存在。The UIWindowDidBecomeKeyNotification
和 UIWindowDidResignKeyNotification
通知帮助你追踪判断你的app window是否是key window。
- Window 学习笔记(一)
- ExtJS4学习笔记(一)---window的创建
- ExtJS4学习笔记(一)---window的创建
- ExtJS4学习笔记(一)---window的创建
- window service 学习之路(一)【学习笔记】
- window phone 7 开发学习笔记(一)
- SQL Window - oracle 与 MySQl的学习笔记(一)
- javascript犀牛书学习笔记(一)Window对象
- [学习笔记]X Window
- window.showModalDialog学习笔记
- window对象的学习(一)
- Ext学习笔记10-window
- window phone 8 学习笔记
- Ext学习笔记06 - Window
- 框架与Window对象 学习笔记(一): 创建多个框架
- OSG学习笔记(一)之window下编译OSG静态库
- MongoDB学习笔记(一) MongoDB介绍及安装(window下)
- window核心编程学习笔记 (一) 错误处理以及Unicode
- av_reduce
- codeforces 721C journey(动态规划+拓扑排序)
- PE文件本地DLL注入实现
- JavaSE:1min讲解引用类型参数(2)-抽象类
- Android Studio ,项目开发Bug大全
- Window 学习笔记(一)
- 设计模式小结
- Bitmap【Android】
- asp.net下微信网页授权
- 项目中的坑 总结
- remote_loginpasswordfile=NONE
- 举例解释Touch 事件的分发和消费机制(通俗易懂)
- 解读2015之自然语言处理篇:持续探索 稳中前行
- Kafka入门经典教程