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

来源:互联网 发布:淘宝怎么运营 编辑:程序博客网 时间:2024/06/05 00:13
TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabel#import "ViewController.h"@interface ViewController () <TTTAttributedLabelDelegate, UIActionSheetDelegate>@end@implementation ViewControllerstatic inline NSRegularExpression * NameRegularExpression() {    static NSRegularExpression *_nameRegularExpression = nil;    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        _nameRegularExpression = [[NSRegularExpression alloc] initWithPattern:@"^\\w+" options:NSRegularExpressionCaseInsensitive error:nil];    });    return _nameRegularExpression;}- (void)viewDidLoad {    [super viewDidLoad];    TTTAttributedLabel *label = [[TTTAttributedLabel alloc] initWithFrame:CGRectMake(100, 120, 120, 60)];    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:NO] forKey:(NSString *)kCTUnderlineStyleAttributeName];    NSString *text = @"冷清风 赞了 王战 的说说";    [label setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^ NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString)    {        //设置可点击文字的范围        NSRange boldRange = [[mutableAttributedString string] rangeOfString:@"冷清风" options:NSCaseInsensitiveSearch];        //设定可点击文字的的大小        UIFont *boldSystemFont = [UIFont boldSystemFontOfSize:16];        CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)boldSystemFont.fontName, boldSystemFont.pointSize, NULL);        if (font) {            //设置可点击文本的大小            [mutableAttributedString addAttribute:(NSString *)kCTFontAttributeName value:(__bridge id)font range:boldRange];            //设置可点击文本的颜色            [mutableAttributedString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(id)[[UIColor blueColor] CGColor] range:boldRange];            CFRelease(font);        }       return mutableAttributedString;    }];    //正则    NSRegularExpression *regexp = NameRegularExpression();    NSRange linkRange = [regexp rangeOfFirstMatchInString:text options:0 range:NSMakeRange(0, 3)];    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 alloc] initWithTitle:[url absoluteString] delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil otherButtonTitles:NSLocalizedString(@"Open Link in Safari", nil), nil] showInView:self.view];}#pragma mark - UIActionSheetDelegate- (void)actionSheet:(UIActionSheet *)actionSheetclickedButtonAtIndex:(NSInteger)buttonIndex{    if (buttonIndex == actionSheet.cancelButtonIndex) {        return;    }    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:actionSheet.title]];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}

转载自:http://blog.csdn.net/lengshengren/article/details/43971441

0 0
原创粉丝点击