自定义target

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

原文地址:https://www.cnblogs.com/hsxblog/p/4926234.html