iOS学笔记本45- TTTAttributedLabel 使用方法

转载 2015年11月18日 14:57:01

 TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel


#import "ViewController.h"


@interface ViewController () <TTTAttributedLabelDelegateUIActionSheetDelegate>


@end


@implementation ViewController


static inline NSRegularExpression * NameRegularExpression() {

    static NSRegularExpression *_nameRegularExpression = nil;

    

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        _nameRegularExpression = [[NSRegularExpression allocinitWithPattern:@"^\\w+" options:NSRegularExpressionCaseInsensitive error:nil];

    });

    

    return _nameRegularExpression;

}


- (void)viewDidLoad {

    [super viewDidLoad];

    

    TTTAttributedLabel *label = [[TTTAttributedLabel allocinitWithFrame:CGRectMake(10012012060)];

    label.font = [UIFont systemFontOfSize:14];

    label.textColor = [UIColor blackColor];

    label.lineBreakMode = NSLineBreakByCharWrapping;

    label.numberOfLines = 0;

    //设置高亮颜色

    label.highlightedTextColor = [UIColor greenColor];

    

    //检测url

    label.enabledTextCheckingTypes = NSTextCheckingTypeLink;

    

    //对齐方式

    label.verticalAlignment = TTTAttributedLabelVerticalAlignmentCenter;

    

    //行间距

    label.lineSpacing = 8;

    

    //设置阴影

    label.shadowColor = [UIColor grayColor];

    

    label.delegate = self// Delegate

    //NO 不显示下划线

    label.linkAttributes = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NOforKey:(NSString *)kCTUnderlineStyleAttributeName];

    

    NSString *text = @"冷清风 赞了 王战 的说说";


    

    [label setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^ NSMutableAttributedString *(NSMutableAttributedString*mutableAttributedString)

    {

        

        //设置可点击文字的范围

        NSRange boldRange = [[mutableAttributedString stringrangeOfString:@"冷清风" options:NSCaseInsensitiveSearch];

        

        //设定可点击文字的的大小

        UIFont *boldSystemFont = [UIFont boldSystemFontOfSize:16];

        CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)boldSystemFont.fontName, boldSystemFont.pointSizeNULL);

    

        if (font) {

            

            //设置可点击文本的大小

            [mutableAttributedString addAttribute:(NSString *)kCTFontAttributeName value:(__bridge id)font range:boldRange];

            

            //设置可点击文本的颜色

            [mutableAttributedString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)[[UIColor blueColorCGColorrange:boldRange];


            CFRelease(font);

            

        }

       return mutableAttributedString;

    }];

    

    //正则

    NSRegularExpression *regexp = NameRegularExpression();

    

    NSRange linkRange = [regexp rangeOfFirstMatchInString:text options:0 range:NSMakeRange(03)];

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.exiucai.com/"]];

    

    //设置链接的url

    [label addLinkToURL:url withRange:linkRange];

    

    

    [self.view addSubview:label];

}


- (void)attributedLabel:(__unused TTTAttributedLabel *)label

   didSelectLinkWithURL:(NSURL *)url

{

    

    [[[UIActionSheet allocinitWithTitle:[url absoluteStringdelegate:self cancelButtonTitle:NSLocalizedString(@"Cancel"nildestructiveButtonTitle:nilotherButtonTitles:NSLocalizedString(@"Open Link in Safari"nil), nilshowInView:self.view];

}


#pragma mark - UIActionSheetDelegate


- (void)actionSheet:(UIActionSheet *)actionSheet

clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex == actionSheet.cancelButtonIndex) {

        return;

    }

    

    [[UIApplication sharedApplicationopenURL:[NSURL URLWithString:actionSheet.title]];

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

iOS TTTAttributedLabel 使用

参考: http://stackoverflow.com/questions/3482346/how-do-you-use-nsattributedstring http://stackoverflo...
  • alincexiaohao
  • alincexiaohao
  • 2015年06月19日 13:51
  • 1035

【iOS】TTTAttributedLabel链接点击

原文地址:http://www.jianshu.com/p/9a192bc8e644 ,感谢原作者无私分享。  TTTAttributedLabel可以满足在一段文本内容中展示网址链接: TTTAt...
  • Riven_wn
  • Riven_wn
  • 2017年06月15日 13:09
  • 750

富文本(TTTAttributedLabel是一个替代,UILabel提供了一种简单的方式来高效地呈现属性字符串。作为奖励,它还支持链接嵌入,自动与NSTextCheckingTypes手动通过指定)

转自:https://github.com/TTTAttributedLabel/TTTAttributedLabel 一个下拉更换为UILabel支持的属性,数据检测器,链接等 TTTAt...
  • zhanglizhi111
  • zhanglizhi111
  • 2017年02月23日 10:04
  • 1408

TTTAttributedLabel 高度计算

TTTAttributedLabel 高度计算// messageLabel是TTTAttributedLabel的实例 // _model.content是NSString实例 // MESSAGE...
  • Mo_Mo123
  • Mo_Mo123
  • 2016年08月03日 16:49
  • 1031

TTTAttributedLabel 使用

https://github.com/mattt/TTTAttributedLabel - (TTTAttributedLabel *)initlizerLinkLabel:(NSString ...
  • WSxiaotao
  • WSxiaotao
  • 2014年09月26日 09:48
  • 2513

TTTAttributedLabel 使用方法

TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel #import "View...
  • lengshengren
  • lengshengren
  • 2015年02月27日 19:42
  • 36435

TTTAttributedLabel 使用方法 (可点击文字文本)

TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabelimport “ViewControlle...
  • shengdaVolleyball
  • shengdaVolleyball
  • 2016年06月03日 14:47
  • 3540

TTTAttributedLabel 如何将多个字符串高亮显示

TTTAttributedLabel进行多个字符串的高亮显示。 需要对每个字符串进行匹配,从而得到所有需要高亮的NSRange,然后利用NSMutableAttributedString对每个N...
  • u012907783
  • u012907783
  • 2016年11月22日 18:02
  • 416

一段文本内容中展示网址链接---TTTAttributedLabel链接点击和textView两种方式实现

上一篇关联文章:富文本上 http://blog.csdn.net/liyunxiangrxm/article/details/53410919“` // Copyright © 2016年 li...
  • liyunxiangrxm
  • liyunxiangrxm
  • 2016年11月30日 17:24
  • 1237

TTTAttributedLabel高亮显示手机号码、网址

1、初始化label- (TTTAttributedLabel *)traceLabel{ if (_traceLabel == nil) { _traceLabel = [T...
  • u013094208
  • u013094208
  • 2017年05月12日 18:09
  • 352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS学笔记本45- TTTAttributedLabel 使用方法
举报原因:
原因补充:

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