iOS:检测我的 UIView 何时添加到其他视图中
Posted
技术标签:
【中文标题】iOS:检测我的 UIView 何时添加到其他视图中【英文标题】:iOS: Detect when my UIView is add in other view 【发布时间】:2012-07-19 09:55:27 【问题描述】:CustomView *customView = [...];
[self.view addSubview:customView];
我需要在我的 CustomView 类中检测它何时添加到其他视图中或我的超级视图更改时。
【问题讨论】:
did/willMoveToSuperview: 还不够吗? 在其他视图中添加customView时不会。 【参考方案1】:您可以使用willMoveToSuperview:
和didMoveToSuperview
来检测视图何时移动。 layoutSubviews
会在superview换帧时调用。
【讨论】:
非常感谢,我没有想到 layoutSubviews。 问题:在我的视图控制器中,viewWillAppear:animated
被称为 之前 viewWillLayoutSubviews
。因此,即使我使用viewWillLayoutSubviews
根据超级视图的大小排列我的视图,我也无法在它们所属的viewWillAppear:animated
中启动一些动画之后。这应该怎么做?
第二种方法名称是didMoveToSuperview
(没有:
),以防万一有人复制/粘贴。【参考方案2】:
对于 UIView 使用 - (void)didMoveToSuperview
对于 UIViewController 使用 -(void)viewWillAppear:(BOOL)animated
【讨论】:
【参考方案3】:还在 addsubview 之前分配 Customview 的 TAG 并通过特定 TAG 检测。
【讨论】:
如果您想使用viewWithTag:
方法从超级视图的角度跟踪视图,这不是一个坏策略,但这不是这里的问题。以上是关于iOS:检测我的 UIView 何时添加到其他视图中的主要内容,如果未能解决你的问题,请参考以下文章