码迷,mamicode.com
首页 > 其他好文 > 详细

把UIGestureRecognizer 中的点击事件变成Block

时间:2016-04-11 11:44:14      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

//
//  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

 

把UIGestureRecognizer 中的点击事件变成Block

标签:

原文地址:http://www.cnblogs.com/zkzzkz/p/5377327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!