开发者社区> jerry.yin> 正文

iOS7应用开发5、视图控制器View Controller及其生命周期

简介: 1、UITextView: 该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容; 包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动...
+关注继续查看

1、UITextView:

该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容;

包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动更新UITextView的内容;

包含属性UIFont *font,用于设置所有字符的字体;

NSTextContainer *textContainer和NSLayoutManager *layoutManager属性,用于设置文本的其他一些属性;


2、视图控制器的生命周期

* 创建:通过storyboard或者代码创建MVC;

* 设定显示视图接口(outlet)、几何变化、视图的显示和消失等操作;

* 随后调用viewDidLoad,可以进行下一步的初始化操作;只会被调用一次;注意不要再这里设定与界面尺寸相关的设置;

* 在视图显示之前调用viewWillAppear;该函数可以多次调用;

* 视图消失之前调用viewWillDisappear;处理保存当前视图的一些信息(如需要);

* 在布局变化前后,调用viewWill/DidLayoutSubviews处理相关信息;

* 自动旋转:shouldAutorotate返回yes,supportedInterfaceOrientations返回支持的方向;

* 内存不足警告时,调动didReceiveMemoryWarning进行处理,如释放掉当前没有显示的视图,将强引用对象设为nil等;


进一步讨论:

UIViewController继承自UIResponder,控制数据和视图的显示等操作。在创建ViewController的时候调用init方法的时候,在调用[super init]的时候自然会调用initWithNib方法;在创建视图控制器的时候,首先会判断当前视图控制器中是否存在视图;如果不存在,则会调用loadView方法;在该方法中进行判断视图产生的方法:自定义、storyboard还是空视图,在此之前,当前ViewController的视图还是nil;而当自定义视图、从storyboard中装载视图或者生产空视图完成后,ViewController便有其具体的值了。下图就是大致流程:


如果视图控制器的view尚不存在,那么在调用其getter方法的时候会调用loadView方法(注意,不应该直接在代码中调用loadview方法,而应覆盖该方法实现自己的内容);覆盖该方法的时候必须要自己创建视图供viewcontroller显示,或者调用[super loadView];


3、通知NSNotification

* 获取默认通知中心 :[NSNotificationCenter defaultCenter];

* 对某通知添加响应:addObserver: selector: name: object:;

* 关闭通知观察者:removeObserver;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
iOS翻页视图控制器UIPageViewController的应用(二)
iOS翻页视图控制器UIPageViewController的应用
61 0
iOS系统菜单控制器UIMenuController使用简介(一)
iOS系统菜单控制器UIMenuController使用简介
79 0
iOS系统菜单控制器UIMenuController使用简介(二)
iOS系统菜单控制器UIMenuController使用简介
82 0
iOS翻页视图控制器UIPageViewController的应用(一)
iOS翻页视图控制器UIPageViewController的应用
66 0
【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)
【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)
13 0
ExpandableListView简单应用及listview模拟ExpandableListView
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px">   首先我们还是来看一些案例,还是拿搜狐新闻客户端,因为我天天上下班没事爱看这个东东,上班又没时间看新闻,上下班路途之
1294 0
+关注
jerry.yin
毕业于上海大学通信与信息工程学院,从事流媒体和视频编解码的研究与开发工作; 研究领域包括视频编解码标准、视频处理和流媒体技术、移动互联网技术等。
182
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载