1、自定义MyUIView,使其继承自UIView,并重写状态监视函数,代码如下:
//
// MyUIView.h
#import <UIKit/UIKit.h>
@interface MyUIView : UIView
@end
//
// MyUIView.m
#import "MyUIView.h"
@implementation MyUIView
- (void)didAddSubview:(UIView *)subview {
//有子元素追加在此元素上
NSLog(@"有子元素追加在此元素上");
}
- (void)willRemoveSubview:(UIView *)subview {
NSLog(@"我的子元素即将被删除");
}
- (void)willMoveToSuperview:(UIView *)newSuperview {
//当前UIView作为其他UIView的子元素被追加或者删除前
//就是说此元素被追加到UIView或者UIView的子类定义的元素上
NSLog(@"我作为子元素即将被追加,或者删除");
}
- (void)didMoveToSuperview {
//当前UIView作为其他UIView的子元素被追加或者删除后
NSLog(@"我作为子元素已经被追加,或者删除");
}
- (void)willMoveToWindow:(UIWindow *)newWindow {
//当前UIView作为其他UIWindow的子元素被追加或者删除前
NSLog(@"%s", __func__);
}
- (void) didMoveToWindow {
//当前UIView作为其他UIWindow的子元素被追加或者删除后
NSLog(@"%s", __FUNCTION__);
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end
2、测试:
(1)、在APPDelegate中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point