iOS - UILabel点击选中文字,部分高亮,YYLabel

最近有这个一个小需求,有这样一个tipLabel:"添加QQ:670360112 进行在线咨询" 。其中qq号要求高亮并且可以点击复制,并弹出提示框提示复制成功。

好吧,需求基本是这样,在研究很久之后,发现YYLabel可以搞定。

简单介绍一下YYLabel,它是YYText里边的一个控件,YYText可以在GitHub上找到:https://github.com/ibireme/YYText


- (YYLabel *)yyLabel {
    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号之后的截图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值