1.定义一个UIButton的类别
#import <UIKit/UIKit.h>
@interface UIButton (ButtonAttribute)
@property (nonatomic, assign) BOOL underlineNone;
@end
#import "UIButton+ButtonAttribute.h"
@implementation UIButton (ButtonAttribute)
#pragma mark---@dynamic 就是要告诉编译器,代码中用@dynamic修饰的属性,其getter和setter方法会在程序运行的时候或者用其他方式动态绑定,以便让编译器通过编译。其主要的作用就是用在NSManagerObject对象的属性声明上,由于此类对象的属性一般是从Core Data的属性中生成的,core data 框架会在程序运行的时候为此类属性生成getter和setter方法。
@dynamic underlineNone;
-(void)setUnderlineNone:(BOOL)flag {
if (flag) {
NSString *text = self.titleLabel.text;
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:text] ;
[str addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleNone] range:NSMakeRange(0,text.length)];
[self setAttributedTitle:str forState:UIControlStateNormal];
}
}
@end
2.如何使用
(1)代码调用
[self.btnForgetPW setUnderlineNone:YES];
(2)xib中设置在User Defined Runtime Attributes中设置如下图。