//
// UIGestureRecognizer+Block.h
// rrefwvenfo
//
// Created by 张凯泽 on 16/4/11.
// Copyright © 2016年 rytong_zkz. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef void(^NVMGertureBlock)(id gesture);
@interface UIGestureRecognizer (Block)
+(instancetype)nvm_gestureRecongnizerWithActionBlock:(NVMGertureBlock)Block;
-(instancetype)initWithActionBlock:(NVMGertureBlock)Block;
@end
//
// UIGestureRecognizer+Block.m
// rrefwvenfo
//
// Created by 张凯泽 on 16/4/11.
// Copyright © 2016年 rytong_zkz. All rights reserved.
//
#import <objc/message.h>
#import "UIGestureRecognizer+Block.h"
static const int target_key;
@implementation UIGestureRecognizer (Block)
+(instancetype)nvm_gestureRecongnizerWithActionBlock:(NVMGertureBlock)Block
{
return [[self alloc]initWithActionBlock:Block];
}
-(instancetype)initWithActionBlock:(NVMGertureBlock)Block
{
self = [self init];
[self addActionBlock:Block];
[self addTarget:self action:@selector(invoke:)];
return self;
}
-(void)addActionBlock:(NVMGertureBlock)block
{
if (block) {
objc_setAssociatedObject(self, &target_key, block, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
}
-(void)invoke:(id)sender
{
NVMGertureBlock block = objc_getAssociatedObject(self, &target_key);
if (block) {
block(sender);
}
}
@end