首页 > 其他 > 详细

把UIGestureRecognizer 中的点击事件变成Block

时间:2016-04-11 11:41:29      阅读:356      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!