给UILabel 或者 UIButton标题加下划线

原创 2016年05月31日 15:19:47

方法一:

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 同理可得。

示例结果:




版权声明:本文为博主原创文章,未经博主允许不得转载。

UIButton和的UILabel添加下划线,中划线

UIButton UIButton *butn=[[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 30)]; NSMutableAtt...

uilabel 的相关处理 类富文本(自动换行,设置行高,同一个label多种颜色,给文字加下划线 首行缩进 等 等)

1.自动换行 UIFont *font=[UIFont systemFontOfSize:lableFont]; self.numberOfLines=0; self.lineBreakMode=NS...

uilabel uibutton

  • 2015年05月19日 10:41
  • 9KB
  • 下载

swift学习控件篇:UIButton+UILabel

  • 2016年03月24日 18:04
  • 145KB
  • 下载

iOS中在UILabel显示不同的字体和颜色,增加下划线

在项目开发中,我们经常会遇到在这样一种情形:在一个UILabel 使用不同的颜色或不同的字体来体现字符串,在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的at...

ios UILabel上下划线

  • 2015年07月02日 11:29
  • 61KB
  • 下载

UILabel,文字添加下划线,中划线

//显示下划线         //中划线 //        NSDictionary *attribtDic = @{NSStrikethroughStyleAttributeName: [NSN...

iOS开发:常用的UIView控件——UILabel、UITextField、UIButton

前面几篇文章已经对iOS开发的几个基本的文件进行

UIImageView+UILabel+UIButton的小Demo--超级猜图

利用UIImageView+UILabel+UIButton做的一个小程序: 首先要实现各个控件的静态布局,要做好每个设备的适配。 因为我是小白,不太懂其他的适配方法,我就用比例来适配。 比如说:就6...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:给UILabel 或者 UIButton标题加下划线
举报原因:
原因补充:

(最多只允许输入30个字)