Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1e50716

Browse files
author
mengyaoyao
committed
优化结构 , 新增 手机号 ,邮箱链接匹配
1 parent ff2c6f4 commit 1e50716

File tree

10 files changed

+514
-202
lines changed

10 files changed

+514
-202
lines changed

‎MYCoreText_Example/Controllers(各个场景使用说明)/DetailViewController.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ - (void)viewDidLoad {
5656

5757
tableViewModel *model = [[tableViewModel alloc]init];
5858

59-
model.text = @"大家好[呲牙], 写这个小小的#demo#起源是因为年前做项目[滑稽],需要自己写即时通讯和朋友圈等功能,时间非常赶[噘嘴],网上www.baidu.com和www.google.cn找了很久也没找到很合适的[白眼]可以用的代码,也还好第一期产品只需求表情文字混排,并没有做其他要求,于是直接用富文本就搞定了。不过联想到后面的需求,始终觉得是个隐患,既然找不到合适的代码就只有自己查资料,硬着头皮写一份了。。不过还好,断断续续上班之余,花了一周左右时间,给整理了出来,希望对需求的人有用.如果喜欢请点一下star噢 . 该#demo#已经运用到项目中,项目已经更新第二版了,如果有bug还请不吝赐教[害羞]。。[害羞]项目名称叫云语 。如果喜欢请点一下star噢[花心] . www.jyall.com [表情不存在的情况]";
59+
model.text = @"大家好[呲牙], 写这个小小的#demo#起源是因为年前做项目[滑稽],需要自己写即时通讯和朋友圈等功能,时间非常赶[噘嘴],网上www.baidu.com和www.google.cn找了很久也没找到很合适的[白眼]可以用的代码,即使找到一些图文混排的也都有Bug或者并不完善 . [噘嘴]在空闲时间花了大概一周写了一份 , 一直不断的完善性能和修复bug , 目前为止基本上已经非常稳定了 ,项目里运用迭代也超过了5个版本 . 此外 , 还有一些很多同僚提出的意见 ,如果支持手机号和邮箱号的匹配 , 针对这些再次对该label做了相应的结构调整 [害羞]. 目前支持图片表情文字混排比如[白眼][擦汗][呲牙], 网址链接比如www.google.cn ,话题比如#这是一个话题#,at比如@孟遥,手机号比如13912345678,邮箱号比如我的邮箱mengyao_block@outlook.com,有意见可以提出 .自己设定的文字比如这是一个自定义链接,这是另外一个自定义链接,关键字比如我是一个关键字. 也可根据文本的range进行设定链接.[卖萌] . 如果觉得有用麻烦star一下或者fork一下喔...";
6060
[self.dataArray addObject:model];
6161
}
6262

@@ -72,7 +72,7 @@ - (void)viewDidLoad {
7272

7373
- (void)linkText:(NSString *)clickString type:(MYLinkType)linkType
7474
{
75-
NSLog(@"----------%@--------%li",clickString,linkType);
75+
NSLog(@"----------点击内容是 : %@--------链接类型是 : %li",clickString,linkType);
7676
}
7777

7878

‎MYCoreText_Example/Controllers(各个场景使用说明)/ImageViewController.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,14 @@ - (MYCoreTextLabel *)coreTextLabel
3636
if (!_coreTextLabel) {
3737
_coreTextLabel = [[MYCoreTextLabel alloc]init];
3838
_coreTextLabel.imageSize = CGSizeMake(25, 25); // 设置图片尺寸 , 默认和字体一样
39+
40+
//设置普通文本属性
3941
_coreTextLabel.textFont = [UIFont systemFontOfSize:16.f]; //设置普通文本大小 , 默认14.f
4042
_coreTextLabel.textColor = [UIColor brownColor]; //设置普通文本字体颜色 , 默认黑色
4143
_coreTextLabel.lineSpacing = 5; //设置行间距
4244
_coreTextLabel.wordSpacing = 2; //设置字间距
45+
46+
4347
//如果不需要任何的自定义链接和关键字, 赋值nil即可
4448
[_coreTextLabel setText:@"满街脚步突然静[调皮]了,满天柏树突然没有[白眼]动摇,这一刹[擦汗]我只需要一罐热茶吧,那味道似是[滑稽]什么都不紧要,唱片店内[擦汗]传来异国民谣,那种快乐[白眼]突然被我需要,不亲切[调皮]至少不似想你般[龇牙]奥妙,情和调随著怀缅变得萧条,原来过得很快乐[擦汗],[白眼]只我一人未发觉,如能忘掉渴望,[花心]岁月长衣裳薄,无论于什么角落[噘嘴],不假设你或会在旁,我也可畅游异国放心吃喝[调皮][调皮][调皮]" customLinks:nil keywords:nil];
4549
}
@@ -50,11 +54,17 @@ - (MYCoreTextLabel *)bigImageTextLabel
5054
{
5155
if (!_bigImageTextLabel) {
5256
_bigImageTextLabel = [[MYCoreTextLabel alloc]init];
57+
5358
_bigImageTextLabel.imageSize = CGSizeMake(120, 120); // 设置图片尺寸 , 默认和字体一样
59+
60+
//设置普通文本属性
5461
_bigImageTextLabel.textFont = [UIFont systemFontOfSize:18.f]; //设置普通文本大小 , 默认14.f
5562
_bigImageTextLabel.textColor = [UIColor brownColor]; //设置普通文本字体颜色 , 默认黑色
5663
_bigImageTextLabel.lineSpacing = 8; //设置行间距
5764
_bigImageTextLabel.wordSpacing = 2; //设置字间距
65+
66+
67+
5868
//如果不需要任何的自定义链接和关键字, 赋值nil即可
5969
[_bigImageTextLabel setText:@"这一刹我只需要一罐热茶吧,那味道似是什么都不紧要.[图片1]唱片店内传来异国民谣,那种快乐突然被我需要[图片2],不亲切至少不似想你般奥妙,情和调随著怀缅变得萧条,原来过得很快乐,只我一人未发觉,如能忘掉渴望[图片4],岁月长衣裳薄,无论于什么角落[图片3]" customLinks:nil keywords:nil];
6070
}

‎MYCoreText_Example/Controllers(各个场景使用说明)/KeywordViewController.m

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,21 @@ - (MYCoreTextLabel *)coretextLabel
2020
{
2121
if (!_coretextLabel) {
2222
_coretextLabel = [[MYCoreTextLabel alloc]init];
23+
24+
//设置普通文本属性
2325
_coretextLabel.textFont = [UIFont systemFontOfSize:14.f]; //设置文本大小
2426
_coretextLabel.textColor = [UIColor brownColor]; // 设置文本颜色
2527
_coretextLabel.lineSpacing = 2; //设置行间距
2628
_coretextLabel.wordSpacing = 1.5; //设置字间距
29+
30+
31+
//设置关键字属性
32+
_coretextLabel.keywordFont = [UIFont systemFontOfSize:20];
2733
_coretextLabel.keyWordColor = [UIColor redColor]; //设置关键字颜色
28-
_coretextLabel.keyWordBackColor = [UIColor yellowColor]; //设置关键字背景高亮色 , 如果不需要可自行调整为透明 或者和背景色一样 , 默认是黄色的
29-
_coretextLabel.hiddenNormalLink = YES; // hiddenNormalLink为YES ,不显示所有的常规链接特性, 所以常规链接也都是直接以普通文本方式展示 , 并不可点击
34+
_coretextLabel.keyWordBackColor = [UIColor blueColor]; //设置关键字背景高亮色 , 如果不需要可自行调整为透明 或者和背景色一样 , 默认是黄色的
35+
36+
37+
3038
[_coretextLabel setText:@"山脚至山腰是茂盛青翠的马尾松、楠木、云杉、枫树等树林,绵延几十公里,瞬间把游客带进世外桃源。山腰朝上,杂生着三百多种杜鹃树,杜鹃树不高,一米两米不等,马樱花类居多。听导游介绍,"大理三月好风光"时节,三百多种杜鹃花盛开,将苍山装扮成花的海洋。www.google.cn 红色、白色、紫色交相辉映,恍惚人间天堂。海拔四千米以上,由于气候寒冷,草木无法生长,终年积雪,皑皑如白云飘落山顶.苍山巍峨,十九座尖峰高耸入云,山顶白雪皑皑,晶莹剔透,犹如海明威小说中的乞力马扎罗雪峰,"苍山雪"由此而来。雪峰下是草甸,@顺坡势绵延着一望无际的绿草,莽莽苍苍,微风过处,送来阵阵远古苍茫。草丛中,洁白的大雪素展示肤色,蓝色龙胆不停地眨眼,绯红绿绒蒿卖弄衣裳,金色的柴胡在招摇,红色紫云英微笑不停......更有许多不知道名字的杂草一个劲地绿,阳光下开心地开满了花朵,朵朵都在人们眼前盼望,www.baidu.com美丽可爱野花是雪峰的祝福,#是山坡的语言#,#是苍山的心事#,是小草和花朵为沧桑写下的抒情诗歌。成双成对的彩斑蝶于花海中翩翩起舞,嗡嗡的蜜蜂在花瓣间打闹。草甸以下青一色郁郁葱葱的林海,四季青翠的马尾松,笔直修长的杉木,高大俊秀的枫树,@枝繁叶茂的楠木,摇弋多姿的板栗......逍遥的松鼠在树枝间练功,喜鹊逗留树顶啁啾,子规在杜鹃枝缝里跳跃,金丝鸟在草丛嬉戏,@好不热闹!树下,蚂蚁在腐烂落叶堆中穿行......林间仙雾缭绕,清香沁肺。十九峰高耸入云,巍峨雄壮,山峰下沟壑纵横;十八溪流水潺潺,涧泉汩汩,飞瀑挂于岩石悬崖。姊妹山——鸡足山顶庙塔玲珑剔透,金碧辉煌;北面玉龙雪山莽莽苍苍,冰清玉洁。玉局峰下百余米处有个方圆十来亩的圆形水潭,名叫洗马潭,是玉局峰、龙泉峰雪水积淀而成,潭水清澈,滟滟如梦" customLinks:@[@"十九"] keywords:@[@"苍山",@"大理",@"导游"]];
3139
//customLinks : 添加自定义链接字 , 如不需要 , 传nil , 可以添加自定义链接的一些属性
3240
//keywords : 关键字 ,如不需要,传nil即可
@@ -47,7 +55,7 @@ - (void)viewDidLoad {
4755

4856
- (void)linkText:(NSString *)clickString type:(MYLinkType)linkType
4957
{
50-
NSLog(@"---------------%@ -------%li",clickString,linkType);
58+
NSLog(@"---------------点击内容是 : %@ -------链接类型是 : %li",clickString,linkType);
5159
}
5260

5361
@end

‎MYCoreText_Example/Controllers(各个场景使用说明)/LinksViewController.m

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,14 @@ - (MYCoreTextLabel *)coretextLabel
2222
if (!_coretextLabel) {
2323
_coretextLabel = [[MYCoreTextLabel alloc]init];
2424
_coretextLabel.delegate = self;
25-
_coretextLabel.norLinkBackColor = [UIColor redColor]; //设置常规链接点击背景色 @ #话题# www.baidu.com
26-
_coretextLabel.norLinkFont = [UIFont systemFontOfSize:20]; //设置常规链接的字体大小
27-
_coretextLabel.norLinkColor = [UIColor greenColor]; //设置常规链接的颜色
28-
_coretextLabel.hiddenNormalLink = NO; // 是否显示常规链接特性 ,默认为NO,默认显示常规链接. 如果为YES , 上述的赋值没有任何意义 , 默认为NO
25+
26+
//是否匹配网址链接 , 以及相关设置
27+
_coretextLabel.showWebLink = YES;
28+
_coretextLabel.webLinkBackColor = [UIColor redColor]; //设置网址链接点击背景色
29+
_coretextLabel.webLinkFont = [UIFont systemFontOfSize:20]; //设置网址链接的字体大小
30+
_coretextLabel.webLinkColor = [UIColor greenColor]; //设置网址链接的颜色
31+
32+
//设置自定义点击链接为 @"哥哥"
2933
[_coretextLabel setText:@"阿南。#测试#现在每次吃栗子我都会想起父亲,想起小时候每到深秋,父亲#测试#在地里干农活都会在家乡的山间摘好多野栗子回来给我吃,他不给哥哥吃,他自己也不吃。只给我一个人吃。看到你在书里写给阿明的信,好几次我都哽咽了。阿明尚ww.dsa.cn且对你如此,可你却还的如此的爱他www.baidu.com。可对于我的父亲,我深觉自己做的这www.google.cn些微不足道,甚至不值一提。去年他动手术,我和哥哥送他去医院,晚上,我和哥哥离开,只留他#测试#一人在医院。第二日,我去医院@小明 看到手术后的他躺在病床上憔悴不已。母亲守在一旁。心揪成一团。三个月前哥哥大婚,看他和母亲忙前忙后,看到他满脸的胡渣以及母亲双鬓若隐若现的白发。更是心痛不已。www.123.com" customLinks:@[@"哥哥"] keywords:nil];
3034
}
3135
return _coretextLabel;
@@ -44,7 +48,7 @@ - (void)viewDidLoad {
4448

4549
- (void)linkText:(NSString *)clickString type:(MYLinkType)linkType
4650
{
47-
NSLog(@"----------%@--------%li",clickString,linkType);
51+
NSLog(@"----------点击内容是 : %@--------链接类型是 : %li",clickString,linkType);
4852
}
4953

5054
@end

‎MYCoreText_Example/Controllers(各个场景使用说明)/showCell.m

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,60 @@ - (MYCoreTextLabel *)coretextLabel
2323
{
2424
if (!_coretextLabel) {
2525
_coretextLabel = [[MYCoreTextLabel alloc]init];
26+
27+
//设置普通文本的属性
2628
_coretextLabel.textFont = [UIFont systemFontOfSize:15.f]; //设置普通内容文字大小
2729
_coretextLabel.textColor = [UIColor brownColor]; // 设置普通内容文字颜色
28-
_coretextLabel.norLinkFont = [UIFont systemFontOfSize:18.f]; //设置常规链接字体大小 @ #话题# www.baidu.com 网址类型
29-
_coretextLabel.norLinkColor = [UIColor blueColor]; //设置常规链接字体颜色
30-
_coretextLabel.norLinkBackColor = [UIColor redColor]; //设置常规链接点击背景色
30+
_coretextLabel.lineSpacing = 5; //设置行间距
31+
_coretextLabel.wordSpacing = 0.5; //设置字间距
32+
33+
34+
//设置网址链接的属性
35+
_coretextLabel.showWebLink = YES;
36+
_coretextLabel.webLinkFont = [UIFont systemFontOfSize:18.f]; //设置网址链接字体大小
37+
_coretextLabel.webLinkColor = [UIColor blueColor]; //设置网址链接字体颜色
38+
_coretextLabel.webLinkBackColor = [UIColor redColor]; //设置网址链接点击背景色
39+
40+
41+
42+
//设置 #话题#的属性
43+
_coretextLabel.showTopicLink = YES;
44+
_coretextLabel.topicLinkFont = [UIFont systemFontOfSize:15.f];
45+
_coretextLabel.topicLinkColor = [UIColor redColor];
46+
_coretextLabel.topicLinkBackColor = [UIColor blackColor];
47+
48+
49+
//设置 @ 的属性
50+
_coretextLabel.showTrendLink = YES;
51+
_coretextLabel.trendLinkFont = [UIFont systemFontOfSize:18];
52+
_coretextLabel.trendLinkColor = [UIColor purpleColor];
53+
_coretextLabel.trendLinkBackColor = [UIColor darkGrayColor];
54+
55+
56+
//设置邮箱的属性
57+
_coretextLabel.showMailLink = YES;
58+
_coretextLabel.mailLinkFont = [UIFont systemFontOfSize:18.f];
59+
_coretextLabel.mailLinkColor = [UIColor redColor];
60+
_coretextLabel.mailLinkBackColor = [UIColor greenColor];
61+
62+
//设置手机号的属性
63+
_coretextLabel.showPhoneLink = YES;
64+
_coretextLabel.phoneLinkFont = [UIFont systemFontOfSize:15.f];
65+
_coretextLabel.phoneLinkColor = [UIColor redColor];
66+
_coretextLabel.phoneLinkBackColor = [UIColor blueColor];
67+
68+
//设置自定义链接的属性
3169
_coretextLabel.customLinkFont = [UIFont systemFontOfSize:18.f]; //设置自定义链接字 字体大小
3270
_coretextLabel.customLinkColor = [UIColor greenColor]; //设置自定义链接字体颜色
3371
_coretextLabel.customLinkBackColor = [UIColor orangeColor]; //设置自定义链接点击背景色
34-
_coretextLabel.keyWordColor = [UIColor redColor]; //设置关键字颜色
35-
_coretextLabel.keyWordBackColor = [UIColor blueColor]; //设置关键字高亮背景色
36-
_coretextLabel.hiddenNormalLink = NO; // 不显示常规链接 , 默认为NO 即默认显示常规链接 , 如果不需要显示 , 赋值为YES即可
37-
_coretextLabel.lineSpacing = 5; //设置行间距
38-
_coretextLabel.wordSpacing = 0.5; //设置字间距
72+
73+
74+
//设置关键字的属性
75+
_coretextLabel.keywordFont = [UIFont systemFontOfSize:15];
76+
_coretextLabel.keyWordColor = [UIColor blueColor]; //设置关键字颜色
77+
_coretextLabel.keyWordBackColor = [UIColor yellowColor]; //设置关键字高亮背景色
78+
79+
3980
_coretextLabel.delegate = self; //设置代理 , 用于监听点击事件 以及接收点击内容等
4081
}
4182
return _coretextLabel;
@@ -57,7 +98,7 @@ - (void)setModel:(tableViewModel *)model
5798
_model = model;
5899

59100
//赋值
60-
[self.coretextLabel setText:model.text customLinks:@[@"朋友圈",@"即时通讯"] keywords:@[@"如果喜欢请点一下star噢"]];
101+
[self.coretextLabel setText:model.text customLinks:@[@"一个自定义链接",@"另外一个自定义链接"] keywords:@[@"关键字",@"star",@"fork"]];
61102
//计算高度
62103
CGSize size = [self.coretextLabel sizeThatFits:CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
63104

@@ -68,7 +109,7 @@ - (void)setModel:(tableViewModel *)model
68109

69110
- (void)linkText:(NSString *)clickString type:(MYLinkType)linkType
70111
{
71-
NSLog(@"------------%@--------------%li",clickString,linkType);
112+
NSLog(@"------------点击内容是 : %@--------------链接类型是 : %li",clickString,linkType);
72113
}
73114

74115

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /