TTTAttributedLabel简单使用

TTTAttributedLabe作为UILabel的替代,可以轻松的渲染可变字符串,文中中加入嵌入链接,手机号,时间都可以得到相对应的处理,项目地址TTTAttributedLabel,简单看一下效果:

FlyElephant.png

普通Label:

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 200, 50)];
    label.textColor       = [UIColor whiteColor];
    label.text            = @"美国职业篮球联赛(National Basketball Association,简称NBA,中文简称“美职篮”)于1946年6月6日在纽约成立,是由北美三十支队伍组成的男子职业篮球联盟,美国四大职业体育...";
    label.backgroundColor = [UIColor redColor];
    label.font            = [UIFont systemFontOfSize:14];
    label.numberOfLines   = 0;
    label.lineBreakMode   = NSLineBreakByWordWrapping;
    [self.view addSubview:label];

TTTAttributedLabel中的FlyElephant链接设置:

    NSString           *text  = @"美国职业篮球联赛(National Basketball Association,简称NBA,中文简称“美职篮”)于1946年6月6日在纽约成立(FlyElephant),是由北美三十支队伍组成的男子职业篮球联盟,美国四大职业体育...";
    TTTAttributedLabel *label = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(20, 180, 300, 100)];
    label.textColor = [UIColor whiteColor];
    
    NSMutableAttributedString *atributeStr = [[NSMutableAttributedString alloc] initWithString:text attributes:@{
                                                  NSForegroundColorAttributeName:[UIColor whiteColor],
                                                  NSFontAttributeName :[UIFont systemFontOfSize:14]
                                              }];
    label.text            = atributeStr;
    label.backgroundColor = [UIColor redColor];
    label.font            = [UIFont systemFontOfSize:14];
    label.numberOfLines   = 0;
    label.linkAttributes       = @{NSForegroundColorAttributeName:[UIColor blackColor], NSFontAttributeName:[UIFont systemFontOfSize:16.0f]};
    label.activeLinkAttributes = @{NSForegroundColorAttributeName:[UIColor blackColor], NSFontAttributeName:[UIFont systemFontOfSize:16.0f]};
    NSRange serviceRange = [text rangeOfString:@"FlyElephant"];
    label.delegate = self;
    [self.view addSubview:label];
    [label addLinkToURL:[NSURL URLWithString:@"http://www.jianshu.com/users/24da48b2ddb3/latest_articles"] withRange:serviceRange];

实现TTTAttributedLabelDelegate协议:

-(void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url {
    [[UIApplication sharedApplication] openURL:url];
}

如果加入了其他手势操作,会导致TTTAttributedLabel中的链接无法响应,因此需要在手势的delegate中进行判断:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([touch.view isKindOfClass:[TTTAttributedLabel class]]) {
        return NO;
    }
    return YES;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • TTTAttributedLabel 是一个常用的富文本开源库,支持各种属性文本、数据探测器,链接等。下面我们来看...
    0o冻僵的企鹅o0阅读 26,948评论 3 23
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,257评论 4 61
  • 仁波切,请问您见到过证悟了的人吗?有没有能作我们榜样的证悟了的人? 我个人愿意相信我看到过证悟了的人,就是我的上师...
    Martin_马丁阅读 241评论 0 1
  • 如果醒来时,有幸还清晰的记得做梦时有朵怎样的花开了,便会产生一种莫名的愉悦感。或许是来自于,花让人觉得美好,而花开...
    左右不言他阅读 436评论 0 0
  • 10.14 2017成功坚持读完辞典,成功坚持晨读100天,坚持每日一篇BBC,坚持每日运动,坚持每日看新闻,坚持...
    ClaireMMM阅读 156评论 0 0