如何将UIView子类作为子视图添加到另一个视图时得到通知?

问题描述:

我需要某种钩子或模板方法来覆盖将视图作为子视图添加到另一个视图时调用哪些视图,但在文档中找不到它。它必须是由UIKit自动调用的东西。原因是我的观点必须在有超级观点时立即开始动画,但是一旦没有超级观点就立即停止动画。如何将UIView子类作为子视图添加到另一个视图时得到通知?

我不能覆盖-setSuperview:因为Xcode不是指示这样的类存在 - 而且我不能调用super。

您想覆盖- (void)didMoveToSuperview

didMoveToSuperview

告知其它的父改变视图。

此方法的默认实现什么都不做。只要超级视图改变,子类就可以覆盖它以执行其他操作 。

+3

请记住,当从其父级删除视图时,也会调用此视图,而不仅仅在将视图添加到新父级时。相应地编码。 – rmaddy 2013-02-09 19:56:31

+0

编辑答案以处理删除/添加到超级视图。 – 2017-12-28 04:39:52