Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
使用 Block 创建 UIGestureRecognizer
static const int target_key;
@implementation UIGestureRecognizer (Block)
+(instancetype)nvm_gestureRecognizerWithActionBlock:(NVMGestureBlock)block {
return [[self alloc]initWithActionBlock:block];
- (instancetype)initWithActionBlock:(NVMGestureBlock)block {
self = [self init];
[self addActionBlock:block];
[self addTarget:self action:@selector(invoke:)];
return self;
- (void)addActionBlock:(NVMGestureBlock)block {
if (block) {
objc_setAssociatedObject(self, &target_key, block, OBJC_ASSOCIATION_COPY_NONATOMIC);
- (void)invoke:(id)sender {
NVMGestureBlock block = objc_getAssociatedObject(self, &target_key);
if (block) {
Copy link

zhaoxiaobao commented Apr 12, 2016


Copy link

wendf commented Jul 12, 2016


Copy link

devfalme commented Dec 12, 2016

放一下.h可以吗, 自己写了以后不管怎么都不走invoke

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment