第三章
第三章还是Objective-C理论的学习,主要讲了内存管理方面的问题和ARC
一、堆和栈的概念
1.在执行方法(或函数)时,会在内存中名为“栈”的区域分配一块内存空间,称为“帧”,帧内的变量称为局部变量(local variable)。帧是后进先出的(有没有很像人有钱之后买古董,一般是车、房都买了之后,买点古董之类的,所以古董是最后进来的;但是一旦家境败落,最先“出去”的也是古董:) )。
2.堆则是内存中的另外一块区域,包含了大量无序的对象,需要通过指针来保存这些对象在堆中的地址(没有指针你就找不着这个对象了)。
二、ARC
有了ARC,Objective-C程序员就不用那么操心内存管理方面的问题了(突然感觉好幸福有没有,之前的iOS程序员竟然需要手动管理内存)
三、属性
1.使用了属性,我们就不用再写代码很长的实例变量存取方法了,属性统统帮你搞定;
2.nonatomic、strong、weak、copy关键字的使用。
第四章
终于来到可以直观地看到、触摸到的视图学习了。
一、视图的概念
1.视图是UIView对象或者它的子类;
2.视图知道如何绘制自己且能处理事件,比如触摸;
3.视图是按层次结构排列的,层次结构的中的每一个UIView对象都有一个layer属性,所有视图的图层组合成一幅图像,绘制到屏幕上;
4.iOS系统通过以下两点优化视图的显示、使得画面更流畅:(1)不重绘显示内容没有改变的视图;(2)一次事件处理完成后,再统一重绘一次视图,而不是每一步操作都重绘;
二、bounds和frame的区别
1.bounds属性用于确定绘制区域,避免将自己绘制到图层外面;
2.frame属性用于确定视图相对于其他视图的相对位置;
三、绘制同心圆
相对于UILable和UIButton等视图,Apple已经提供了相应的绘制方法,而这一节需要学习的绘制同心圆视图的方法,Apple没有提供,所以我们手写代码来完成。
第五章
一、类扩展的好处
1.可以减少头文件的臃肿,因为头文件经常需要被别的文件所导入,提高编译器效率;
2.有些内容是相对私有的,不需要公开出来,所以放在.m这个实现文件的类扩展中会更合适。
二、iOS应用的运行循环
每个iOS应用启动后,就会开始一个run loop(运行循环),监听发生的事件。事件发生时run loop会为之寻找相应的处理方法,然后它就坐着开始喝茶休息了,直到事件处理完毕后,控制权再次回到run loop手中,它又开始重新监听,等待事件的发生(一直等待,直到世界的尽头... ... 其实,是等到你的手机没电为止:) )。
三、UIScrollView
1.一个UIScrollView视图就像是一个摄像机镜头,手指拖动时就像镜头的移动,可以看到不同的景色;
2.介绍了如何分页,书中的例子是分2页,在一个UIView视图旁边再新建一个视图,然后设置UIScrollView 的pagingEnabled(分页属性)为YES就可以了。