#import "AppDelegate.h"
#import "MainViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)dealloc
{
[_window release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[_window release];
MainViewController *mainVC = [[MainViewController alloc] init];
self.window.rootViewController = mainVC;
[mainVC release];
return YES;
}
#import "MainViewController.h"
#import "TouchView.h"
@interface MainViewController ()
@end
@implementation MainViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
// 自定义视图实现点击
TouchView *touchV = [[TouchView alloc] initWithFrame:CGRectMake(20, 20, 335, 335)];
touchV.backgroundColor = [UIColor redColor];
// touchV.alpha = 0;
[self.view addSubview:touchV];
[touchV release];
touchV.target = self;
touchV.action = @selector(touchAction:);
}
- (void)touchAction:(TouchView *)view
{
NSLog(@"touchView被点击了");
}
#import <UIKit/UIKit.h>
@interface TouchView : UIView
// 执行方法的对象
@property (nonatomic,assign) id target;
// target对象的一个方法
@property (nonatomic,assign) SEL action;
@end
#import "TouchView.h"
@implementation TouchView
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"点击");
// CGFloat red = arc4random() % 256 / 255.0;
// CGFloat green = arc4random() % 256 / 255.0;
// CGFloat blue = arc4random() % 256 / 255.0;
// self.backgroundColor = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
// 让 target 调用 action 方法
// 就 target和action 具体是什么,TouchView本身不需要关心
[self.target performSelector:self.action withObject:nil];
}
@end