YYText使用篇(二)
2017-06-06 本文已影响478人
刀客传奇
版本记录
版本号 | 时间 |
---|---|
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的使用方法,包括基本方法还有就是高亮状态,未完,待续~~~~