UIButton的点击事件使用block回调

直接上代码

.h文件
#import <UIKit/UIKit.h>
typedef void (^btnBlock)();

@interfce UIButton (Block)

- (void)handelWithBlock:(btnBlock)block;

@end

.m文件

#import "UIButton+Block.h"
#import <objc/runtime.h>

static const char btnKey;

@implementation UIButton (Block)

- (void)handelWithBlock:(btnBlock)block
{
    if (block)
    {
       set方法将self和block通过btnkey关联起来
        objc_setAssociatedObject(self, &btnKey, block, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }

    [self addTarget:self action:@selector(btnAction) forControlEvents:UIControlEventTouchUpInside];
}

- (void)btnAction
{
     get方法通过key获取对象
    btnBlock block = objc_getAssociatedObject(self, &btnKey);
    block();
}

@end

tips: 使用objc_setAssociatedObject,需要引入头文件 #import <objc/runtime.h>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,905评论 0 9
  • 出题者简介: 孙源(sunnyxx),目前就职于百度,负责百度知道 iOS 客户端的开发工作,对技术喜欢刨根问底和...
    戈多_于勒阅读 5,774评论 0 5
  • 佛尘往事,尘归何处兮,落指轻谈! 眉似曲折,回肠空转兮,轻叹哀折? 大道小道心之道,道之兮,有传慕饶! 大言小言心...
    l安阅读 2,812评论 0 0
  • 曾经的样子,现在的模样。灿烂的笑容经不起岁月的蹉跎。稚嫩的脸庞抵不过时光的流逝。小时候多向往长大、现在就多怀念青春...
    萍水相逢总是袁阅读 1,495评论 0 0
  • 文/三月疯 有些时候改掉某些习惯,真的会花掉半辈子 祝福那些点进来正在热恋的朋友,希望你们在爱情的道路上走的更远。...
    三月疯阅读 6,655评论 19 13

友情链接更多精彩内容