最近有这个一个小需求,有这样一个tipLabel:"添加QQ:670360112 进行在线咨询" 。其中qq号要求高亮并且可以点击复制,并弹出提示框提示复制成功。
好吧,需求基本是这样,在研究很久之后,发现YYLabel可以搞定。
简单介绍一下YYLabel,它是YYText里边的一个控件,YYText可以在GitHub上找到:https://github.com/ibireme/YYText
if (nil == _yyLabel) {
_yyLabel = [YYLabel new];
_yyLabel.numberOfLines = 0;
NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"添加QQ 670360112 进行在线咨询"];
text.yy_font = kFT4;
text.yy_color = kCL3;
[text yy_setTextHighlightRange:NSMakeRange(6, 10)
color:kThemeColor
backgroundColor:[UIColor whiteColor]
tapAction:^(UIView *containerView, NSAttributedString *text, NSRange range, CGRect rect){
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
pboard.string = @"670360112";
[CMAlert show:@"复制成功"];
}];
_yyLabel.attributedText = text;
}
return _yyLabel;
}
其中我用到了自己集成的CMAlert,tapAction这个Block是点击处理Block。
剪切版的控制:
UIPasteboard *pboard = [UIPasteboard generalPasteboard];
pboard.string = @"670360112";
控制高亮的范围:
NSMakeRange(6, 10)
需要添加的头文件:
#import "YYLabel.h"
#import "NSAttributedString+YYText.h"
这两个头文件都在YYText第三方里,需要安装YYText,推荐cocoaPods安装。
下图是点击了黄色QQ号之后的截图