自定义target - action 方法

HomeViewController.m

#import "HomeViewController.h"

#import "TouchViewPro.h"

 

@interface HomeViewController (){

    TouchViewPro *touchViewPro;

}

 

@end

 

@implementation HomeViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    touchViewPro = [[TouchViewPro alloc] initWithFrame:CGRectMake(65, 65, 100, 100)];

    touchViewPro.backgroundColor = [UIColor blackColor];

    [self.view addSubview:touchViewPro];

    [touchViewPro addTarget:self action:@selector(change)];

    [touchViewPro release];

}

 

- (void)change {

    touchViewPro.frame = CGRectMake(arc4random() % (325 - 50 + 1) + 50, arc4random() % (325 - 50 + 1) + 50, arc4random() % 51, arc4random() % 70);

}

 

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

@end

 -----------------------------------------------<TouchViewPro.h>-----------------------------------

#import <UIKit/UIKit.h>

 

@interface TouchViewPro : UIView

- (void)addTarget:(id)target action:(SEL)action;

@end

 --------------------------------------------------<TouchViewPro.m>-------------------------------------------------

#import "TouchViewPro.h"

 

@interface TouchViewPro(){

    id _target;

    SEL _action;

}

 

@end

 

@implementation TouchViewPro

 

- (void)addTarget:(id)target action:(SEL)action {

    _action = action;

    _target = target;

}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

    [_target performSelector:_action withObject:self];

    

//    self.frame = CGRectMake(arc4random() % (325 - 50 + 1) + 50, arc4random() % (325 - 50 + 1) + 50, arc4random() % 51, arc4random() % 70);

}

@end

 

posted @ 2015-10-31 21:14  HSX  阅读(208)  评论(0编辑  收藏  举报