//// UIGestureRecognizer+Block.h// rrefwvenfo//// Created by 张凯泽 on 16/4/11.// Copyright © 2016年 rytong_zkz. All rights reserved.//#importtypedef 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#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