监听view添加到父控件和从父控件移除
1.首先执行下面的代码,自定义一个redView并将其添加到控制器view,之后再从父控制器的view中移除
// 创建红色view
RedView *redView = [[RedView alloc] init];
redView.frame = self.view.bounds;
// 将红色view添加到控制器view中
[self.view addSubview:redView];
// 创建button
UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
// 添加button到红色view中
[redView addSubview:button];
// 从红色view中移除
[button removeFromSuperview];
2.在自定义的类RedView中重写下面的代码
/**
* 即将要添加到父控件
*/
- (void)willMoveToSuperview:(UIView *)newSuperview;
{
NSLog(@"%s", __func__);
}
/**
* 已经添加到父控件
*/
- (void)didMoveToSuperview
{
NSLog(@"%s", __func__);
}
/**
* 即将添加子控件
*/
- (void)didAddSubview:(UIView *)subview
{
NSLog(@"%s", __func__);
}
/**
* 子控件将从自己subviews数组中移除
*/
- (void)willRemoveSubview:(UIView *)subview;
{
NSLog(@"%s", __func__);
}
````
3.发现在执行1中的代码的时候,会依次打印2中的代码的方法