iPhone/iOS:如果将一个UIView添加为子视图,是否会调用任何方法?

13

如果我像这样将一个视图添加为子视图

[self.view addSubview:mySubview];

是否有任何方法可以在我的子视图(mySubview)上调用,我可以覆盖以添加一些自定义行为?

4个回答

28

将视图添加到(新的)父视图会触发

- (void)willMoveToSuperview:(UIView *)newSuperview

- (void)didMoveToSuperview

有关详细信息,请参见UIView参考文档


非常感谢您的快速回复。我有点傻,没有立刻注意到这个方法... - Pascal Klein
2
好东西!学到了新知识 +1 - Sid

3

您可以覆盖这两个:

- (void)willMoveToSuperview:(UIView *)newSuperview
- (void)didMoveToSuperview

请查看 UIView 文档中的类似方法。


3

是的,如果更改了superview ,会调用一个方法。您需要在子视图类中覆盖以下方法。

- (void)willMoveToSuperview:(UIView *)newSuperview
- (void)didMoveToSuperview

来自UIView文档

willMoveToSuperview:, didMoveToSuperview - 如有需要,实现这些方法以跟踪当前视图在视图层次结构中的移动。


0

在编程中,除非有特殊需要,否则最好在初始化阶段自定义视图。这样你就拥有了所有所需的东西,而且更重要的是,它是一个同步调用。


这并没有真正回答问题,不是吗? - Till

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接