iOS - drawrect 和 loyoutSubViews & archorPoint

时间:2021-09-30 05:09:10

一、elayoutSubViews 在以下情况下会被调用:

1、init初始化不对调用layoutSubviews 

2、addSubview会调用

3、设置view 的frame 时会调用

4、滚动UIScrollView时会调用

5、旋转屏幕会调用父视图的layoutSubViews

6、直接手动调用layoutSubViews

layoutSubViews 在数据发生变化时调用,可以让子视图重新绘制,相当于刷新界面。

 

二、drawrect 在以下情况下会被调用:

1、如果在UIView初始化没有设置rect大小时,不会自动调用drawrect方法。drawrect是在controller->loadview 和 controller -> viewdidload 之后被调用

2、在sizeToFit 之后调用

3、通过设置contentmode 的 UIViewContentModeRedraw。将在每次设置或者更改frame的时候自动调用

4、手动调用setNeedsDisplay 方法

 

三、CGPoint position :

用来设置CALayer在父层中的位置

以父层的左上角为原点(0, 0)

CGPoint anchorPoint:

称为“定位点”、“锚点”

决定着CALayer身上的哪个点会在position属性所指的位置

以自己的左上角为原点(0, 0)

它的x、y取值范围都是0~1,默认值为(0.5, 0.5)

默认的anchorPoint(锚点)位置是(0.5,0.5) 即中心点。