首先ios view系统中,存在多个坐标系,这个必须要意识到,比如superview的坐标系,subview的坐标系,当前view的坐标系等等。
1.frame
frame的属性中包括了一个矩形,frame rectangle。这个矩形含有的信息是父视图的坐标信息,也就是当前view所在superview中的位置;还有一个信息就是大小。
2.bouns
bounds的属性中也包含了一个矩形,bounds rectangle。这个矩形包括的信息有,size和content origin也就是里面内容的原点坐标,注意,这个坐标是指当前view的坐标系。
3.center
center 属性包含了一个center point 指当前view 的中心在superview坐标系中的位置。
补充,在设置一个view的位置时,一般用center,因为center值总是有效的。如果之前有过某个transform的设置,这时用frame调整位置,如果与tranzform中的不一致,将不会执行,而用center总会执行的。
另外,如果view的一部分超出了superview的bounds,那一部分还是会被渲染的,除非superview调用clipsToBounds 的值为true。而不管view的视图是否超出了superview,超出的那部分,都不会响应touch event事件。