iOS给字符串添加下划线,并设置点击效果

一、给字符串设置下划线效果:
例如给字符串 ABCDEFG 设置下划线效果

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"ABCDEFG"  attributes:@{NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}];
label.attributedText = str;

二、给字符串设置点击效果
例如要达到以下效果

屏幕快照 2019-05-12 上午10.01.54.png

这里我们要使用的是TTTAttributedLabel 一个功能丰富的富文本开源库.
1.设置代理

@interface SHSignRegViewController ()<TTTAttributedLabelDelegate>

2.设置lable

    NSString *termOfUse = Localized(@"《用户使用协议》");
    NSString *str = [NSString stringWithFormat:@"已阅读并同意%@",termOfUse];
    NSRange termRange = [str rangeOfString:termOfUse];
    TTTAttributedLabel *protpcplLabel = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(WIDTH + WIDTHMAKE(35), grayLine.bottom + 10, WIDTH - WIDTHMAKE(60), 40)];
    protpcplLabel.delegate = self;
    protpcplLabel.numberOfLines = 2;
    NSMutableAttributedString *atributeStr = [[NSMutableAttributedString alloc] initWithString:str attributes:@{NSForegroundColorAttributeName:[UIColor grayColor],NSFontAttributeName :[UIFont systemFontOfSize:14]}];
    protpcplLabel.text = atributeStr;
    [protpcplLabel addLinkToURL:[NSURL URLWithString:@"teamRange"] withRange:termRange];
    [_scrollView addSubview:protpcplLabel];

3.实现代理方法

- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url {
    if ([url.absoluteString isEqualToString:@"teamRange"]) {
        //响应点击事件
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本来以为挺简单的效果,没想到居然有点小坑🙄,写下来跟大家分享下 给字符串添加删除线效果 1. 给字符串"12345...
    這Er阅读 24,405评论 2 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,610评论 1 45
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,373评论 0 1
  • 2017 11月2日 星期四 晴 从闺女上学起,我就一直培养闺女学习习惯,最近孩子学习很累,每天下午放学...
    贾海露妈妈阅读 236评论 0 0