如果一个view的集合特性改变了,UIKit会update它的subviews通过如下规则:
a) 如果配置了autoresizing rules,UIKit仅仅adjust每一个view通过这些rules。
b) 如果实现了layoutSubviews方法,UIKit会调用它。可以通过这个方法来调整任何subviews的位置和size。
frame,boundsproperties的关系
a) frame是指在其父 中的坐标系统中的frame矩形属性;
b) bounds是指在view自己的坐标系统中的bounds矩形属性
使用center或者frame属性主要为了管理当前view的几何属性,比如修改位置或者尺寸。
针对只修改位置的情况,center属性是最佳方案
在drawing过程中主要使用bounds属性
虽然可以单独修改frame、bounds、center属性,但是其中这些属性会互相影响:
a) Set frame属性时,bounds的size会match到新的frame的size上;center属性也会match到新frame的center上;
b) Set center属性时,frame的original值也会相应改变
c) Set bounds的size属性时,frame的size属性也会match到bounds的size属性上。
Points vs Pixels。在iOS中,所有坐标值和距离都是浮点数,引用为points。
一个points未必对应到屏幕上的一个pixel。
自定义的部分事件部分如下:
a) Event-handling,例如touchBegan—touchesMoved—touchesEnded—touchesCancelled
b) LayoutSubviews
c) drawRect