[UI界面]-UIWindow
2014-02-25 16:19
447 查看
app应用被启动加载后,通常情况下,就会有且仅有一个UIWindow实例。其目的是将需要在屏幕上显示的内容展示给我们。
一、屏幕相关的知识
1> iPhone屏幕分辨率:
iphone4之前的设备:320 * 480
iphone4和iphone4S: 640 * 960
iphone5:640 * 1136
2>UIScreen类
UIScreen类是当前屏幕的类,一般创建实例都是用它的类方法。[UIScreen mainScreen]。
个人建议在写viewController的UI布局时,可以直接根据屏幕类的宽和高进行布局。
注意:对于我们而言,当屏幕旋转90°,我们会认为屏幕的宽和屏幕的高互换。但是,UIScreen类并没有帮我们做到。
二、UIWindow的常用方法
1>创建一个全屏的window
self.window = [[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
2>设置/改变rootViewController属性
self.window.rootViewController = rootViewController;//假设rootViewController已经存在
3>将window设置为keyWindow并显示
[self.window makeKeyAndVisible];
一般情况下,上面的代码中,除了设置/改变rootViewController需要自己写之外,都会由xcode自动生成。
UIWindow是UIView的子类,所以UIView能够使用的方法UIWindow都能够调用。
但是通常情况下,我们不调用UIWindow的方法。这和UIWindow的作用有关。
UIWindow主要有两个作用:一是提供一个区域来显示UIView,二是将事件分发给其区域内的UIView。我们需要做的是,实现第一个作用。
一般都是通过改变rootViewController属性来实现。
一、屏幕相关的知识
1> iPhone屏幕分辨率:
iphone4之前的设备:320 * 480
iphone4和iphone4S: 640 * 960
iphone5:640 * 1136
2>UIScreen类
UIScreen类是当前屏幕的类,一般创建实例都是用它的类方法。[UIScreen mainScreen]。
个人建议在写viewController的UI布局时,可以直接根据屏幕类的宽和高进行布局。
注意:对于我们而言,当屏幕旋转90°,我们会认为屏幕的宽和屏幕的高互换。但是,UIScreen类并没有帮我们做到。
二、UIWindow的常用方法
1>创建一个全屏的window
self.window = [[[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
2>设置/改变rootViewController属性
self.window.rootViewController = rootViewController;//假设rootViewController已经存在
3>将window设置为keyWindow并显示
[self.window makeKeyAndVisible];
一般情况下,上面的代码中,除了设置/改变rootViewController需要自己写之外,都会由xcode自动生成。
UIWindow是UIView的子类,所以UIView能够使用的方法UIWindow都能够调用。
但是通常情况下,我们不调用UIWindow的方法。这和UIWindow的作用有关。
UIWindow主要有两个作用:一是提供一个区域来显示UIView,二是将事件分发给其区域内的UIView。我们需要做的是,实现第一个作用。
一般都是通过改变rootViewController属性来实现。
相关文章推荐
- QTP(quicktest Professional)
- 使用动态代理实现对request和response的增强
- EasyUI行编辑
- Android Studio 中 FAILURE: Build failed with an exception. * What went wrong: Execution failed for ta
- [NGUI插件] 收录最全的NGUI示例&文档中文教程(更新版本3.0.5)
- openvswith Frequently Asked Questions
- 在android的spinner中,实现取VALUE值和TEXT值
- Easyui 之window 弹出框
- 01 Java基本数据类型、包装类、装箱拆箱、parseXxx()、String.valueOf()
- FragmentTabHost切换Fragment时避免重复加载UI
- Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY'
- UIMenuController的UIWindow不是KeyWindow也会让UIMenuController不显示哦~
- 用CSS3的@media属性根据屏幕大小做自适应各种分辨率网页显示版本-media_query详解
- 修改ligerui的display内容
- ZOJ 3349 Special Subsequence
- easyUi combotree 实现动态加载树节点
- easyUI属性汇总
- UITextView 和 UITextField 的提示信息placeholder
- OSB/SOA Suite中WebLogic Domain的配置
- Android RGB颜色转换 iOS的UIColor