这一节课主要讲了ViewController的生命周期,在课程的后半部分还讲了通知Notification。在这两个知识点中间使用了一个字符串属性设置的demo进行知识点的进一步认识。
字符串属性Demo
这个部分主要通过在UITexeView
上显示一段文字,然后在Demo中展示了使用按钮设置文字的轮廓以及去除轮廓和点击按钮将文字设置为按钮的背景色。
设置字符串属性一般情况下是使用可变字符串NSMutableAttributedString
,修改UITextView
中的字符串属性,一般是通过使用它的textStrong
属性,在其中添加属性和控制的范围NSRange
。
比如说修改选定字符串的颜色:
|
|
还有使用NSMutableAttributedString
来设置一段字符串的属性
|
|
其中NSForegroundColorAttributeName
属性为要修改的字符串属性类型,后边的value
即为对应的值,range
后跟着的是需要修改的范围,比如上边例子中需要修改的就是选中的部分 self.body.selectedRange
。
除了颜色之外,Demo中还讲了其他两种属性,
|
|
ViewController 生命周期
ViewController(以下简称VC)的生命周期在iOS开发中起到了至关重要的作用,他主要是在程序运行的过程中,在不同的时期使用不同的方法,理解并合理的根据VC的生命周期进行代码编写设计可以起到很好的作用。
viewDidLoad
在整个VC的创建过程中只调用一次,所以适合放置一些init
方法。
因为此时页面中的几何方法还没有确定下来,所以不适合处理一些几何方面的东西。
|
|
viewWillAppear
每当VC即将显示在屏幕上给用户看之前都会调用的方法,所以可以调用一些几何相关的代码进行设置,而且只要调用了viewWillAppear
就一定会显示界面给用户。
因为会调用多次,所以并不适合放置一些init
方法。
|
|
viewWillDisappear
当页面即将离开屏幕时调用,因为即将离开,所以可以在这里调用一些销毁对象、停止动画的方法,来节省系统资源的占用。并且可以进行一些数据方面的保存。
|
|
viewDidAppear
对应viewWillAppear
,在页面出现在屏幕上之后调用。
|
|
viewDidDisappear
对应viewWillDisappear
,在页面从屏幕上离开后调用
|
|
viewWillLayoutSubViews & viewDidLayoutSubViews
相对于viewWillAppear
,更适合于对几何相关的操作的方法。
didReceiveMemoryWarning
当内存占用过高时,会调用此方法,可以在此方法中添加一些释放占用内存大的对象,比如图片、声音、视频等等。如果你的应用时候内存过高但是又不释放内存,iOS会将你的应用杀掉!
|
|
Notification 通知
通知是MVC中很重要的一部分,用于发送信号告诉其他人我的值发生了改变,监听者接收到通知之后会做出一些处理。
注册通知
注册一个通知需要用到4个参数:
- observer:通知的接受者,一般为viewController,所以我们将通知的注册写在控制器中时,这个值对应为
self
。 - selector:observer中的方法,接收到广播时调用。
- name:广播的名字。
- object:当广播特定对某个对象作用的时候使用。
下边这个方法就是注册一个监听系统字体发生改变的通知,当用户在修改设置中iOS字体的大小时,就会调用preferredFontsChangeed:
方法进行相应的处理。
|
|
移除通知
当我们离开这个页面的时候,我们需要将注册过的通知移除掉,以免我们的程序发生问题,这里的参数基本与注册通知时一致。
|
|