1

我有一个视图,它在自己的类中退出,并带有自己的 xib。

这个视图被初始化并作为一个子视图添加到我的 viewController 视图中。

当视图被初始化时,方法 layoutSubviews 被调用,我在视图中自定义了一些东西。

但是当视图从父视图(如果有)中移除时调用哪个方法?

例如,对于 ViewController,调用 viewWill/DidDisappear。是否有与 UIView 类似的方法(与 layoutSubviews 相对)?

提前致谢

- -编辑 - -

我刚刚找到了一个在添加和删除子视图时都调用的方法:

- (void)willMoveToSuperview:(UIView *)newSuperview

如果 newSuperview == 0,您可以自定义删除子视图。

我是对的还是处理这种情况的俗气?

4

1 回答 1

3

但是当视图从父视图(如果有)中移除时调用哪个方法?

-removeFromSuperview被调用,因此如果在删除视图时需要做一些内务处理,您可以覆盖它。只要记住也调用super's 版本。

-layoutSubviews不一定只在视图添加到父视图时调用——它在需要布局时调用。例如,它可能在方向改变时被调用,或者当超级视图再次布局时,或者当视图的框架改变时。真的没有相反的,-layoutSubviews因为不需要。(它会叫什么-messupSubviews??;-))

于 2013-07-02T20:33:12.997 回答