我是靠谱客的博主 花痴小猫咪,最近开发中收集的这篇文章主要介绍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;
        }
    }];

最后

以上就是花痴小猫咪为你收集整理的YYLabel 点击富文本中的文字的全部内容,希望文章能够帮你解决YYLabel 点击富文本中的文字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部