美文网首页
给UILabel 或者 UIButton标题加下划线

给UILabel 或者 UIButton标题加下划线

作者: yunxiu | 来源:发表于2017-12-29 15:04 被阅读0次

    转自:http://blog.csdn.net/chaoyuan899/article/details/38306141

    方法一:

    [objc] view plain copy

    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

    [objc] view plain copy

    #import   

    @interface HyperlinksButton : UIButton  

    {  

    UIColor *lineColor;  

    }  

    -(void)setColor:(UIColor*)color;  

    @end  

    HyperlinksButton.m 

    [objc] view plain copy

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

    示例结果:

    相关文章

      网友评论

          本文标题:给UILabel 或者 UIButton标题加下划线

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