我有一个 View ,它在自己的类中退出,并带有自己的 xib。
这个 View 被初始化并作为一个 subview 添加到我的 viewController View 中。
当 View 被初始化时,方法 layoutSubviews 被调用,我在 View 中自定义了一些东西。
但是当 View 从父 View (如果有)中移除时调用哪个方法?
例如,对于 ViewController,调用 viewWill/DidDisappear。是否有与 UIView 类似的方法(与 layoutSubviews 相对)?
提前致谢
---编辑---
我刚刚找到了一个在添加和删除 subview 时都调用的方法:
- (void)willMoveToSuperview:(UIView *)newSuperview
如果 newSuperview == 0,您可以自定义删除 subview 。
我是对的还是处理这种情况的俗气?
最佳答案
BUT which method is called when the view is removed from the superview (if any)?
-removeFromSuperview
被调用,因此如果在删除 View 时需要做一些内务处理,您可以覆盖它。记得调用super
的版本,也是。-layoutSubviews
不一定只在 View 添加到父 View 时调用——它在需要布局时调用。例如,它可能在方向改变时被调用,或者当 super View 再次布局时,或者当 View 的框架改变时。真的没有 -layoutSubviews
的倒数。因为不需要。 (它会叫什么?-messupSubviews
?;-))
关于ios与layoutSubviews相反的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435223/