#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
#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 <UIKit/UIKit.h>
@interface MainViewController : UIViewController
@end
#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, 235, 235)];
touchV.backgroundColor = [UIColor redColor];
[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
{
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];
NSLog(@"点击");
//让target调用action方法
//就 target和action 具体是什么,TouchView本身不需要关心.
[self.target performSelectorInBackground:self.action withObject:nil];
}
@end