UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 300, 100)];
label.backgroundColor = [UIColor redColor];
label.numberOfLines = 3;
NSMutableAttributedString *content = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"您的待办业务条fasdfasdfosadfjasdkljfklasjklfjasdlkjfklasdjklfjalskdjflkadsj"]];
NSRange contentRange = {0,[content length]};
[content addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:contentRange];
label.attributedText = content;
[self.view addSubview:label];
2. http://blog.csdn.net/chaoyuan899/article/details/38306141
方法一:
- NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"查看所有中奖记录"];
- NSRange strRange = {0,[str length]};
- [str addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:strRange];
- [_awardDisplayBtn setAttributedTitle:str forState:UIControlStateNormal];
方法二:
HyperlinksButton.h
- #import <UIKit/UIKit.h>
-
- @interface HyperlinksButton : UIButton
- {
- UIColor *lineColor;
- }
- -(void)setColor:(UIColor*)color;
- @end
HyperlinksButton.m
- #import "HyperlinksButton.h"
-
- @implementation HyperlinksButton
-
- - (id)initWithFrame:(CGRect)frame
- {
- self = [super initWithFrame:frame];
- if (self) {
-
- }
- return self;
- }
-
- -(void)setColor:(UIColor *)color{
- lineColor = [color copy];
- [self setNeedsDisplay];
- }
-
-
- - (void) drawRect:(CGRect)rect {
- CGRect textRect = self.titleLabel.frame;
- CGContextRef contextRef = UIGraphicsGetCurrentContext();
-
- CGFloat descender = self.titleLabel.font.descender;
- if([lineColor isKindOfClass:[UIColor class]]){
- CGContextSetStrokeColorWithColor(contextRef, lineColor.CGColor);
- }
-
- CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender+1);
- CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender+1);
-
- CGContextClosePath(contextRef);
- CGContextDrawPath(contextRef, kCGPathStroke);
- }
- @end
直接将这个类 copy 到工程中,,然后将需要加下划线的 Button 类名改为 HyperlinksButton就可以了,提供了 setColor: 这个接口,可以设置下划线颜色,代码很简单,不解释了。UILabel 同理可得。
示例结果:
代码在这里。