YYText使用篇(二)

版本记录

版本号 时间
V1.0 2017.06.05

前言

YYText是一个专门处理文字的框架,有了它处理文字变得非常方便,这一篇我继续介绍YYText的使用方法,希望对大家能有所帮助。大家还可以参考:
1.YYText使用篇(一)

一、YYText基本属性

这里先介绍YYText的基本属性用法,直接看代码。

#import "JJTextVC.h"
#import "YYText.h"

@interface JJTextVC ()

@end

@implementation JJTextVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor whiteColor];
    
    self.title = @"YYText";
    
    //属性文本
    [self attributeStr];
}

#pragma mark - Object Private Function

//属性文本
- (void)attributeStr
{
    //1.创建一个属性文本
    NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:@"旧时月色,算几番照我,梅边吹笛?唤起玉人,不管清寒与攀摘.何逊而今渐老,都忘却,春风词笔.但怪得,竹外疏花,春冷入瑶席.江国,正寂寂.叹寄与路遥,夜雪初积.翠尊易泣,红萼无言耿相忆.常记曾携手处,千树压.梅湖寒碧,又片片吹尽也,何时得见? "];
    
    //2.为文本设置属性
    attributeStr.yy_font = [UIFont boldSystemFontOfSize:18.0];
    [attributeStr yy_setColor:[UIColor blueColor] range:NSMakeRange(0, 50)];
    attributeStr.yy_lineSpacing = 20.0;
    
    //3.赋值给YYLabel
    YYLabel *yyLabel = [[YYLabel alloc] init];
    yyLabel.attributedText = attributeStr;
    yyLabel.numberOfLines = 0;
    yyLabel.frame = CGRectMake(0.0, 64.0, self.view.bounds.size.width, 500.0);
    [self.view addSubview:yyLabel];
}

@end

看结果图

属性文本

二、YYText高亮状态简单应用

YYText的高亮状态采用下面的方法:

/**
 Convenience method to set text highlight
 
 @param range           text range
 @param color           text color (pass nil to ignore)
 @param backgroundColor text background color when highlight
 @param userInfo        user information dictionary (pass nil to ignore)
 @param tapAction       tap action when user tap the highlight (pass nil to ignore)
 @param longPressAction long press action when user long press the highlight (pass nil to ignore)
 */
- (void)yy_setTextHighlightRange:(NSRange)range
                           color:(nullable UIColor *)color
                 backgroundColor:(nullable UIColor *)backgroundColor
                        userInfo:(nullable NSDictionary *)userInfo
                       tapAction:(nullable YYTextAction)tapAction
                 longPressAction:(nullable YYTextAction)longPressAction;

下面我们看代码

#import "JJTextVC.h"
#import "YYText.h"

@interface JJTextVC ()

@end

@implementation JJTextVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor lightTextColor];
    
    self.title = @"YYText";
    
    //高亮状态
    [self highlightState];
}

#pragma mark - Object Private Function

//高亮状态
- (void)highlightState
{
    //1.创建一个属性文本
    NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:@"旧时月色,算几番照我,梅边吹笛?唤起玉人,不管清寒与攀摘.何逊而今渐老,都忘却,春风词笔.但怪得,竹外疏花,春冷入瑶席.江国,正寂寂.叹寄与路遥,夜雪初积.翠尊易泣,红萼无言耿相忆.常记曾携手处,千树压.梅湖寒碧,又片片吹尽也,何时得见? "];
    
    //2.为文本设置属性
    attributeStr.yy_font = [UIFont boldSystemFontOfSize:18.0];
    attributeStr.yy_lineSpacing = 20.0;
    
    //3.设置文本的高亮属性
    [attributeStr yy_setTextHighlightRange:NSMakeRange(0, 50)
                                     color:[UIColor redColor]
                           backgroundColor:[UIColor yellowColor]
                                  userInfo:nil
                                 tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) {
        
        NSLog(@"我被点击了");
    }
                           longPressAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) {
    }];
    
    //4.赋值给YYLabel
    YYLabel *yyLabel = [[YYLabel alloc] init];
    yyLabel.attributedText = attributeStr;
    yyLabel.numberOfLines = 0;
    yyLabel.frame = CGRectMake(0.0, 64.0, self.view.bounds.size.width, 500.0);
    [self.view addSubview:yyLabel];
}

@end

下面我们看gif图

高亮状态

下面看控制台输出

2017-06-05 23:38:29.387 YYTextDemo[2964:76722] 我被点击了
2017-06-05 23:38:30.718 YYTextDemo[2964:76722] 我被点击了
2017-06-05 23:38:31.221 YYTextDemo[2964:76722] 我被点击了
2017-06-05 23:38:31.686 YYTextDemo[2964:76722] 我被点击了


三、YYText高亮状态详细应用

下面详细设置YYText的高亮状态,可以看代码。

#import "JJTextVC.h"
#import "YYText.h"

@interface JJTextVC ()

@end

@implementation JJTextVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor lightTextColor];
    
    self.title = @"YYText";

    //高亮状态的详细设置
    [self highlightStateDetailSetting];
}

#pragma mark - Object Private Function

//高亮状态详细设置
- (void)highlightStateDetailSetting
{
    //1.创建一个属性文本
    NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:@"旧时月色,算几番照我,梅边吹笛?唤起玉人,不管清寒与攀摘.何逊而今渐老,都忘却,春风词笔.但怪得,竹外疏花,春冷入瑶席.江国,正寂寂.叹寄与路遥,夜雪初积.翠尊易泣,红萼无言耿相忆.常记曾携手处,千树压.梅湖寒碧,又片片吹尽也,何时得见? "];
    
    //2.为文本设置属性
    attributeStr.yy_font = [UIFont boldSystemFontOfSize:18.0];
    attributeStr.yy_lineSpacing = 20.0;
    
    //3.创建高亮属性
    YYTextBorder *border = [YYTextBorder borderWithFillColor:[UIColor magentaColor] cornerRadius:4];
    
    YYTextHighlight *highlight = [[YYTextHighlight alloc] init];
    [highlight setColor:[UIColor blueColor]];
    [highlight setBackgroundBorder:border];
    highlight.tapAction = ^(UIView *containerView, NSAttributedString *text, NSRange range, CGRect rect) {
        NSLog(@"tap text range:...");
        // 你也可以把事件回调放到 YYLabel 和 YYTextView 来处理。
    };
    
    //4.设置文本的高亮属性
    [attributeStr yy_setTextHighlight:highlight range:NSMakeRange(0, 50)];
    
    //5.赋值给YYLabel
    YYLabel *yyLabel = [[YYLabel alloc] init];
    yyLabel.attributedText = attributeStr;
    yyLabel.numberOfLines = 0;
    yyLabel.frame = CGRectMake(0.0, 64.0, self.view.bounds.size.width, 500.0);
    [self.view addSubview:yyLabel];
}

@end

下面看gif结果

高亮状态设置

看输出

2017-06-05 23:58:04.457 YYTextDemo[3258:91471] tap text range:...
2017-06-05 23:58:14.652 YYTextDemo[3258:91471] tap text range:...
2017-06-05 23:59:48.807 YYTextDemo[3258:91471] tap text range:...
2017-06-06 00:00:35.790 YYTextDemo[3258:91471] tap text range:...
2017-06-06 00:00:51.180 YYTextDemo[3258:91471] tap text range:...

后记

这里主要讲述了三种YYText的使用方法,包括基本方法还有就是高亮状态,未完,待续~~~~

大庆红旗泡
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容