TTTAttributedLabel 使用方法



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


#import "ViewController.h"


@interfaceViewController () <TTTAttributedLabelDelegate,UIActionSheetDelegate>


@end


@implementation ViewController


static inline NSRegularExpression * NameRegularExpression() {

    static NSRegularExpression *_nameRegularExpression = nil;

    

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        _nameRegularExpression = [[NSRegularExpressionalloc] initWithPattern:@"^\\w+"options:NSRegularExpressionCaseInsensitiveerror:nil];

    });

    

    return _nameRegularExpression;

}


- (void)viewDidLoad {

    [superviewDidLoad];

    

    TTTAttributedLabel *label = [[TTTAttributedLabelalloc] initWithFrame:CGRectMake(100,120, 120,60)];

    label.font = [UIFontsystemFontOfSize:14];

    label.textColor = [UIColorblackColor];

    label.lineBreakMode =NSLineBreakByCharWrapping;

    label.numberOfLines =0;

    //设置高亮颜色

    label.highlightedTextColor = [UIColorgreenColor];

    

    //检测url

    label.enabledTextCheckingTypes =NSTextCheckingTypeLink;

    

    //对齐方式

    label.verticalAlignment =TTTAttributedLabelVerticalAlignmentCenter;

    

    //行间距

    label.lineSpacing =8;

    

    //设置阴影

    label.shadowColor = [UIColorgrayColor];

    

    label.delegate =self; // Delegate

    //NO 不显示下划线

    label.linkAttributes = [NSDictionarydictionaryWithObject:[NSNumber numberWithBool:NO]forKey:(NSString *)kCTUnderlineStyleAttributeName];

    

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


    

    [label setText:textafterInheritingLabelAttributesAndConfiguringWithBlock:^ NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString)

    {

        

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

        NSRange boldRange = [[mutableAttributedStringstring] rangeOfString:@"冷清风"options:NSCaseInsensitiveSearch];

        

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

        UIFont *boldSystemFont = [UIFontboldSystemFontOfSize:16];

        CTFontRef font =CTFontCreateWithName((__bridgeCFStringRef)boldSystemFont.fontName, boldSystemFont.pointSize,NULL);

    

        if (font) {

            

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

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

            

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

            [mutableAttributedStringaddAttribute:(NSString*)kCTForegroundColorAttributeNamevalue:(id)[[UIColorblueColor] CGColor] range:boldRange];


            CFRelease(font);

            

        }

       return mutableAttributedString;

    }];

    

    //正则

    NSRegularExpression *regexp =NameRegularExpression();

    

    NSRange linkRange = [regexprangeOfFirstMatchInString:text options:0range:NSMakeRange(0,3)];

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

    

    //设置链接的url

    [label addLinkToURL:urlwithRange:linkRange];

    

    

    [self.viewaddSubview:label];

}


- (void)attributedLabel:(__unusedTTTAttributedLabel *)label

   didSelectLinkWithURL:(NSURL *)url

{

    

    [[[UIActionSheetalloc] initWithTitle:[url absoluteString] delegate:selfcancelButtonTitle:NSLocalizedString(@"Cancel",nil) destructiveButtonTitle:nilotherButtonTitles:NSLocalizedString(@"Open Link in Safari",nil), nil]showInView:self.view];

}


#pragma mark - UIActionSheetDelegate


- (void)actionSheet:(UIActionSheet *)actionSheet

clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex == actionSheet.cancelButtonIndex) {

        return;

    }

    

    [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:actionSheet.title]];

}


- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值