我有很多自定义UIViews。
我经常发现自己在自定义视图的init中初始化属性,但我也在那里设置了框架。
我通常将layoutSubviews留空。如果我不希望我的视图边界发生变化,可以在init中设置我的各种子视图帧,还是应该将其移动到layoutSubviews?
我想提一下其中一个原因,我这样做是因为我经常发现自己必须根据我的子视图的布局来计算自定义视图的框架(大小)。
我通常在设置了所有子视图帧大小后调整自定义视图的帧大小。
答案 0 :(得分:2)
您应该避免在layoutSubviews
方法中分配/创建视图,因为它会被调用很多次。您可以在初始化方法中分配视图,并使用layoutSubviews
方法对其进行布局。但是如果你的视图框架与你的视图边界不相关,那么在初始化方法中设置框架就没有什么可担心的了。