美文网首页iOS企业级开发实用技术
给UIBarButtonItem增加isSelect属性

给UIBarButtonItem增加isSelect属性

作者: 强强刘 | 来源:发表于2017-04-06 11:03 被阅读27次

    最近一个需求类似淘宝的购物车编辑按钮,这个按钮在nav上,点击之后文字变为完成,再次点击变回编辑,当然我们使用自定义的button可以搞定,但是如果我们坚持使用系统的UIBarButtonItem呢,我们需要一个Bool属性来标识这个控件是否在选中状态,就是我们使用button那样,当然有很多解决方案,今天我们说一个使用category解决一下

    针对UIBarButtonItem新建一个category文件

    .h代码

    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    
    @interface UIBarButtonItem (Extension)
    
    /**
     对barbuttonitem增加是否选中属性
     */
    
    @property(nonatomic, assign, getter=isMySelect) BOOL mySelect;
    
    @end
    

    .m代码

    #import "UIBarButtonItem+Extension.h"
    
    @implementation UIBarButtonItem (Extension)
    
    -(void)setMySelect:(BOOL)mySelect {
        //因为这里需要一个id类型的value,所以我转成了number类型
        objc_setAssociatedObject(self, @selector(isMySelect), [NSNumber numberWithBool:mySelect], OBJC_ASSOCIATION_COPY_NONATOMIC);
    }
    
    -(BOOL)isMySelect {
         //因为在set方法中转成了number类型,所以这里需要转成Bool类型
        return [objc_getAssociatedObject(self, @selector(isMySelect)) boolValue];
    }
    
    @end
    

    相关文章

      网友评论

        本文标题:给UIBarButtonItem增加isSelect属性

        本文链接:https://www.haomeiwen.com/subject/eqgfattx.html