源码03-事件的响应(处理)
// HMViewController.m // 02-事件传递(掌握) #import "HMViewController.h" @interface HMViewController () @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"%s",__func__); } @end
// HMBaseView.h // 02-事件传递(掌握) #import <UIKit/UIKit.h> @interface HMBaseView : UIView @end
// HMBaseView.m // 02-事件传递(掌握) #import "HMBaseView.h" @implementation HMBaseView //- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event //{ // NSLog(@"%@----touchesBegan",[self class]); //} @end
// HMWhite.h // 02-事件传递(掌握) #import "HMBaseView.h" @interface HMWhite : HMBaseView @end
// HMWhite.m // 02-事件传递(掌握) #import "HMWhite.h" @implementation HMWhite //- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event //{ // NSLog(@"%s",__func__); // // [super touchesBegan:touches withEvent:event]; // //} @end
// HMGreenView.h // 02-事件传递(掌握) #import "HMBaseView.h" @interface HMGreenView : HMBaseView @end
// HMGreenView.m // 02-事件传递(掌握) #import "HMGreenView.h" @implementation HMGreenView - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end
// // HMOrange.h // 02-事件传递(掌握) #import "HMBaseView.h" @interface HMOrange : HMBaseView @end
// // HMOrange.m // 02-事件传递(掌握) #import "HMOrange.h" @implementation HMOrange //- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event //{ // NSLog(@"%s",__func__); // [super touchesBegan:touches withEvent:event]; //} - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end
// // HMYellowView.h // 02-事件传递(掌握) #import "HMBaseView.h" @interface HMYellowView : HMBaseView @end
// // HMYellowView.m // 02-事件传递(掌握) #import "HMYellowView.h" @implementation HMYellowView - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } // touchesBegan默认做法:把事件传递上一个响应者 // 黄色的上一个响应者是蓝色,默认上一个响应者是父控件 //- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event //{ // NSLog(@"%s",__func__); // // // super -> 父类 不是父控件 // [super touchesBegan:touches withEvent:event]; //} // /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end
// HMRedView.m // 02-事件传递(掌握) #import "HMRedView.h" @implementation HMRedView - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end
本人无商业用途,仅仅是学习做个笔记,特别鸣谢小马哥,学习了IOS,另日语学习内容有需要文本和音频请关注公众号:riyuxuexishuji