Swift学习总结1

1.bounds 与 frame的区别:

frame: view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)

bounds:view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,默认以0,0点为起点)

顺便一提:center:view的中心点在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)

具体可以下面的图示:

Swift学习总结1_第1张图片

2.类方法与实例方法的区别:

实例方法是建立实例,实例中才有的方法。

类方法是直接可以使用类引用,加有static关键字,不需要实例化就可以使用的方法,一般在项目中类方法都是设置为工具类使用的。

说明: 一个方法,如果不加static关键字,那么这个方法是属于类实例的,意思就是他属于类的某个实例,通过这个实例调用它,对类的其他实例不产生影响.在

方法前面加static关键字,就代表这个方法属于这个类本身,不属于他的任何实例,意思就是说,这个方法可以不通过实例调用,并且所有的实例都共享

这一个方法,对方法的调用各个实例相互可见。

使用方法:

类方法可以直接调用类变量和类方法。

类方法不可以直接调用实例变量和实例方法。

实例方法可以调用类方法,访问类变量,但是不提倡这样做,会把类方法和类变量混淆成实例方法和实例变量。

3.响应者链:

参考资料:

http://www.jianshu.com/p/2c5678c659d5

http://www.cocoachina.com/ios/20160113/14896.html

4.didSet 与 willSet:

属性观察者,类似于触发器。用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应。有如下特点:

a,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet。

b,给属性添加观察者必须要声明清楚属性类型,否则编译器报错。

c,willSet可以带一个newName的参数,没有的话,该参数默认命名为newValue。

d,didSet可以带一个oldName的参数,表示旧的属性,不带的话默认命名为oldValue。

e,属性初始化时,willSet和didSet不会调用。只有在初始化上下文之外,当设置属性值时才会调用。

f,即使是设置的值和原来值相同,willSet和didSet也会被调用

原文出自:www.hangge.com转载请保留原文链接:http://www.hangge.com/blog/cache/detail_519.html

你可能感兴趣的:(Swift学习总结1)