在哪个观点周期中将子视图添加到 UIView 子类的通用“经验法则”是啥?

Posted

技术标签:

【中文标题】在哪个观点周期中将子视图添加到 UIView 子类的通用“经验法则”是啥?【英文标题】:What is the generic "rule of thumb" for in which point of view cycle to add subviews to an UIView subclass?在哪个观点周期中将子视图添加到 UIView 子类的通用“经验法则”是什么? 【发布时间】:2012-08-31 09:17:49 【问题描述】:

什么是通用的“经验法则”,在哪个观点周期中将子视图添加到 UIView 子类?

例如,如果您决定继承 UITableViewCell 类,您应该在哪个方法中将子视图添加到您的视觉层次结构中?

【问题讨论】:

【参考方案1】:

与我一起工作的其他开发人员,我通常在initWithFrame: 中添加子视图,并在layoutSubviews 中调整大小或移动它们。尽管有视图,我完全用笔尖布局,通常我的意思是无论如何都要保持固定大小。有时匆忙会胜出,我们在初始化程序中调整它们的大小,尤其是对于我们不需要太多调整大小的视图。

可以这样想:您只需向视图层次结构中添加一次。但是您可能需要多次重新定位和调整其大小。因此,您希望在共享该模式的方法中完成这些任务。 initWithFrame: 只会被调用一次,layoutSubviews 会被调用多次。

【讨论】:

谢谢,我也是这么想的。

以上是关于在哪个观点周期中将子视图添加到 UIView 子类的通用“经验法则”是啥?的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UIView 子类添加 nib 子视图

如何在一行代码中将多个子视图添加到我的 iOS 视图中? (也许通过“monkeypatching”一个 `addSubviews` 实例方法到 UIView?)

以编程方式在子类 UIView 的子视图上自动布局

如何在 iOS 中将 UIView 添加到 UIScrollView 中(具有动态内容的视图)

从它自己的 UView 子类中添加 UIView 作为 SuperView 子视图

如何在不知道它是哪个视图的情况下将 UIView 添加为最顶层视图的子视图?