概述
当我们做法律说明和用户协议的时候经常需要点击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 点击富文本中的文字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复