写了个UIButton的分类

//个人写代码有整理强迫症,不喜欢uibutton每次都需要重新写个函数,就写了个分类!
//一些有重复调用必要的函数还是不要用此分类的好
  1.  
    @interface UIButton (Block)
  2.  
    /*
  3.  
    * handleControlEvent:withBlock:
  4.  
    * 使用block处理button事件
  5.  
    * 入参:event 触发类型 例: UIControlEventTouchUpInside
  6.  
    * block 满足触发条件后的事件 例:^{}
  7.  
    * 注:最后入参有效,同时只能保存一个block触发事件
  8.  
    */
  9.  
    - (void)handleControlEvent:(UIControlEvents)event withBlock:(dispatch_block_t)block;
  10.  
    @end
//.m文件开始
  1.  
    #import <objc/runtime.h>
  2.  
    @implementation UIButton (Block)
  3.  
    - (void)handleControlEvent:(UIControlEvents)event withBlock:(dispatch_block_t)block
  4.  
    {
  5.  
    if(!event)
  6.  
    event=UIControlEventTouchUpInside;
  7.  
    objc_setAssociatedObject(self, &"myBlock", block, OBJC_ASSOCIATION_COPY_NONATOMIC);
  8.  
    [self addTarget:self
  9.  
    action:@selector(blockEvent:)
  10.  
    forControlEvents:event];
  11.  
    }
  12.  
    -(void)blockEvent:(UIButton *)sender
  13.  
    {
  14.  
    dispatch_block_t block=objc_getAssociatedObject(self, &"myBlock");
  15.  
    if(block)
  16.  
    {
  17.  
    block();
  18.  
    }
  19.  
    }
  20.  
     

 

1

//手上还有个UIAlertView的分类,效果基本等同.有需要的自行更改就是了,那也是极好的

//最后吐槽一下CSDN的排版,彻底不会用编辑器了

//最后推荐一下念茜的博客: http://blog.csdn.net/yiyaaixuexi

posted @ 2018-06-29 10:52  sundaysios  阅读(121)  评论(0编辑  收藏  举报