最近一個需求類似淘寶的購物車編輯按鈕,這個按鈕在nav上,點(diǎn)擊之后文字變?yōu)橥瓿?再次點(diǎn)擊變回編輯,當(dāng)然我們使用自定義的button可以搞定,但是如果我們堅(jiān)持使用系統(tǒng)的UIBarButtonItem呢,我們需要一個Bool屬性來標(biāo)識這個控件是否在選中狀態(tài),就是我們使用button那樣,當(dāng)然有很多解決方案,今天我們說一個使用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 {
//因?yàn)檫@里需要一個id類型的value,所以我轉(zhuǎn)成了number類型
objc_setAssociatedObject(self, @selector(isMySelect), [NSNumber numberWithBool:mySelect], OBJC_ASSOCIATION_COPY_NONATOMIC);
}
-(BOOL)isMySelect {
//因?yàn)樵趕et方法中轉(zhuǎn)成了number類型,所以這里需要轉(zhuǎn)成Bool類型
return [objc_getAssociatedObject(self, @selector(isMySelect)) boolValue];
}
@end
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者