你的位置:首页 > 操作系统

[操作系统]iOS 开发 - 在哪里更新 custom view 的subviews 的位置信息? (drawRect: 还是 layoutSubviews ?)


对于custom,可以通过addSubview: 增加内容,也可以通过Core Graphic绘制内容。

 

对于后者,在drawRect: 进行,位置信息随之确定

 

对于前者,一般在view初始化时进行(也可以动态地在其它地方进行),设置subview的位置信息时,需要了解下面的区别:

- 在 layoutSubviews中,此时custom view 的bounds虽然已经确定,但是对于有constraint的subview(比如在nib文件中添加的约束),其位置信息还没有按照constraint进行更新。

- 在drawRect:中,subview的位置已经根据constraint进行了更新。

也就是说custom调用layoutSubviews, 然后更新subview的位置信息,然后drawRect: