2

我有许多自定义 UIView。

我经常发现自己在自定义视图的初始化中初始化属性,但我也在那里设置了框架。

我通常将 layoutSubviews 留空。如果我不希望我的视图边界发生变化,是否可以在 init 本身中设置我的各种子视图框架,还是应该将其移动到 layoutSubviews?

我想提一下,我这样做的原因之一是因为我经常发现自己必须根据子视图的布局方式来计算自定义视图的框架(大小)。

我通常在设置完所有子视图框架大小后调整自定义视图框架的大小。

4

1 回答 1

3

你应该避免在方法中分配/创建你的视图layoutSubviews,因为它会被调用很多次。您可以在初始化方法中分配视图并在layoutSubviews方法中布局它们。但是,如果您的视图的框架与视图的边界无关,则无需担心在初始化方法中设置它们的框架。

于 2014-03-25T20:39:42.797 回答