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.

}

相关文章推荐

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

TTTAttributedLabel 库地址 https://github.com/TTTAttributedLabel/TTTAttributedLabelimport “ViewControlle...

函数ODE45使用方法

  • 2013-11-04 14:31
  • 153KB
  • 下载

【*笔记本电脑小键盘使用方法教程*】

随着电脑的普及化,越来越多的用户会自己购买电脑系统使用,而放弃去网吧上网。一些在外拼搏的年轻人因为没有在所在城市定居下来,所以为了方便携带会选择购买笔记本,毕竟笔记本轻便易携。不过随着电脑用户的增多,...

IOS 导航的使用方法

  • 2014-11-02 21:35
  • 38KB
  • 下载

iOS TTTAttributedLabel复制

对于试图类的第三方控件,一般情况下我是不喜欢使用cocoapods添加的,主要原因就是修改十分不便,稍一不慎就一朝回到解放前了。 TTTAttributedLabel是一个我特别喜欢的第三方labe...

IOS中CGAffineTransform的使用方法

常用: #define M_E         2.71828182845904523536028747135266250   e #define M_LOG2E &...

iOS 网络请求框架AFNetworking使用方法(欢迎提建议和分享遇到的问题)

http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库。最新版本支持session,xctool单元测试。网络获取数...

ios的ARC的机制和使用方法

ARC是什么 ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先...

iOS9.0 Spotlight的使用方法及总结的一些坑点

首先使用该功能,必须是iOS9.0之上的系统,然后需要导入CoreSpotlight.framework框架。 下面我们将介绍如何快速的给自己的程序集成Spotlight功能,及在搜索出来的列表下支持...

IOS导航栏的使用方法

IOS导航栏的使用方法 分类: 【IOS移动端】2014-02-27 11:46 46人阅读 评论(0) 收藏 举报 UINavigationController是IOS编程中比较...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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