YYLabel 点击富文本中的文字

当我们做法律说明和用户协议的时候经常需要点击Label中的文字跳转到不同的页面,使用YYLabel可以实现

下面是Label的初始化,YYLabel,主要是设置userInfo不然区分不出点击的是哪段文字

	_lawLabel = [YYLabel new];
        _lawLabel.numberOfLines = 0;
        NSString *contentStr = @"我已阅读并同意服务平台相关协议和条款《用户服务协议》《法律声明》";
        NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]initWithString:contentStr];
        
      
        [attr yy_setAttribute:NSForegroundColorAttributeName value:ThemeColor range:[contentStr rangeOfString:@"《用户服务协议》《法律声明》"]];
        [attr yy_setAttribute:NSFontAttributeName value:SYSTEM_FONT(16) range:NSMakeRange(0, contentStr.length)];
        [attr yy_setAttribute:NSForegroundColorAttributeName  value:BlackColor range:[contentStr rangeOfString:@"服务平台相关协议和条款"]];
        [attr yy_setAttribute:NSFontAttributeName  value:SYSTEM_BOLDFONT(16) range:[contentStr rangeOfString:@"服务平台相关协议和条款"]];
	//这里设置useinfo,是为了点击的时候区分出点击的是哪段文字
        YYTextHighlight *lawHightLight = [YYTextHighlight new];
        lawHightLight.userInfo = @{@"title":@"法律声明"};
        
        YYTextHighlight *protocolHightLight = [YYTextHighlight new];
        protocolHightLight.userInfo = @{@"title":@"用户服务协议"};
        
        YYTextHighlight *agreeHightLight = [YYTextHighlight new];
        agreeHightLight.userInfo = @{@"title":@"服务平台"};
        
        [attr yy_setTextHighlight:lawHightLight range:[contentStr rangeOfString:@"《法律声明》"] ];
        [attr yy_setTextHighlight:protocolHightLight range:[contentStr rangeOfString:@"《用户服务协议》"] ];
        [attr yy_setTextHighlight:agreeHightLight range:[contentStr rangeOfString:@"我已阅读并同意服务平台相关协议和条款"] ];
        
        attr.yy_lineSpacing = 5;
        _lawLabel.attributedText = attr;

点击的方法

/**点击富文本,服务协议和法律声明的跳转*/
    [self.lawLabel setHighlightTapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) {
        @strongify(self)
        JPLLogDebug(@"点击的文本===%@",text);
        YYTextHighlight *highlight = [text yy_attribute:YYTextHighlightAttributeName atIndex:range.location];
        NSString *title = highlight.userInfo[@"title"];
        
        if ([title isEqualToString:@"法律声明"]) {//点击的法律声明
            [self p_forwardLegalPage];
        } else if ([title isEqualToString:@"用户服务协议"]) {//点击用户服务协议
            [self p_forwardProtocolPage];
        } else {
            self.checkButton.selected = !self.checkButton.selected;
        }
    }];
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值