呼啦一阵风
将UIButton的addTarget: action: forControlEvents:改造成block建立UIButton+Block,将其引用到.pch中,#import "UIButton+Block.h"#import <Foundation/Foundation.h>#import <objc/runtime.h>typedef void (^ActionBlock)();@interface UIButton(Block)@property (readonly) NSMutableDictionary *event;- (void) handleControlEvent:(UIControlEvents)controlEvent withBlock:(ActionBlock)action;@end#import "UIButton+Block.h"@implementation UIButton(Block)static char overviewKey;@dynamic event;- (void)handleControlEvent:(UIControlEvents)event withBlock:(ActionBlock)block {objc_setAssociatedObject(self, &overviewKey, block, OBJC_ASSOCIATION_COPY_NONATOMIC);[self addTarget:self action:@selector(callActionBlock:) forControlEvents:event];}- (void)callActionBlock:(id)sender {ActionBlock block = (ActionBlock)objc_getAssociatedObject(self, &overviewKey);if (block) {block();}}@end