• Label加下滑线


    方法一:

    1. NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"查看所有中奖记录"];  
    2. NSRange strRange = {0,[str length]};  
    3. [str addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:strRange];  
    4. [_awardDisplayBtn setAttributedTitle:str forState:UIControlStateNormal];  


    方法二:

    HyperlinksButton.h

    1. #import <UIKit/UIKit.h>  
    2.   
    3. @interface HyperlinksButton : UIButton  
    4. {  
    5.     UIColor *lineColor;  
    6. }  
    7. -(void)setColor:(UIColor*)color;  
    8. @end  

    HyperlinksButton.m 

    1. #import "HyperlinksButton.h"  
    2.   
    3. @implementation HyperlinksButton  
    4.   
    5. - (id)initWithFrame:(CGRect)frame  
    6. {  
    7.     self = [super initWithFrame:frame];  
    8.     if (self) {  
    9.           
    10.     }  
    11.     return self;  
    12. }  
    13.   
    14. -(void)setColor:(UIColor *)color{  
    15.     lineColor = [color copy];  
    16.     [self setNeedsDisplay];  
    17. }  
    18.   
    19.   
    20. - (void) drawRect:(CGRect)rect {  
    21.     CGRect textRect = self.titleLabel.frame;  
    22.     CGContextRef contextRef = UIGraphicsGetCurrentContext();  
    23.       
    24.     CGFloat descender = self.titleLabel.font.descender;  
    25.     if([lineColor isKindOfClass:[UIColor class]]){  
    26.         CGContextSetStrokeColorWithColor(contextRef, lineColor.CGColor);  
    27.     }  
    28.       
    29.     CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender+1);  
    30.     CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender+1);  
    31.       
    32.     CGContextClosePath(contextRef);  
    33.     CGContextDrawPath(contextRef, kCGPathStroke);  
    34. }  
    35. @end  

    直接将这个类 copy 到工程中,,然后将需要加下划线的 Button 类名改为 HyperlinksButton就可以了,提供了 setColor: 这个接口,可以设置下划线颜色,代码很简单,不解释了。UILabel 同理可得。

    示例结果:

  • 相关阅读:
    Codeforces Round #702 (Div. 3) 题解
    Educational Codeforces Round 104 (Rated for Div. 2) A~E题解
    AtCoder Regular Contest 112 A~D题解
    Codeforces Round #701 (Div. 2) A~E 题解
    java String, StringBuffer, StringBuilder简单介绍和使用
    货仓选址
    线程的同步
    数据结构课设作业
    线程的生命周期(java 图)
    JAVA多线程的创建和使用
  • 原文地址:https://www.cnblogs.com/lidongq/p/4378810.html
Copyright © 2020-2023  润新知