项目中需要用富文本实现用户注册的时候那些注册协议等部分文字可以点击跳转的效果, 今天不忙, 就自己封装了个ZHAttributeTextView类
github地址:https://github.com/ZHHalsey/ZHAttributeTextView (感觉好用, 请点个star)
效果图如下所示(不需要左侧按钮的话, 可以在ZHAttributeTextView中去掉btn就可以)
使用方法很简单
1 > 导入类 'ZHAttributeTextView'
2 > 然后在需要实现的地方 #import "ZHAttributeTextView.h"
3 > 需要的地方创建对象, 并且设置属性 (可以把下面代码拷贝到你需要实现的地方)
ZHAttributeTextView *myTextView = [[ZHAttributeTextView alloc]initWithFrame:CGRectMake(10, 300, self.view.bounds.size.width - 20, 50)];
// 如果这里设为1个的话, 就不用设置第二个的起始坐标跟文本长度了
myTextView.numClickEvent = 2; // 有几个点击事件(只能设为1个或2个)
myTextView.oneClickLeftBeginNum = 7; // 第一个点击的起始坐标数字是几
myTextView.oneTitleLength = 12; // 第一个点击的文本长度是几
myTextView.twoClickLeftBeginNum = 19; // 第二个点击的起始坐标数字是几
myTextView.twoTitleLength = 11; // 第二个点击的文本长度是几
myTextView.fontSize = 14; // 可点击的字体大小
myTextView.titleTapColor= [UIColororangeColor]; // 可点击富文本字体颜色
// 设置了上面后要在最后设置内容
myTextView.content = @"我已阅读并接受《XXXX注册服务协议》《XXXX风险提示书》";
myTextView.agreeBtnClick = ^(UIButton *btn) {
btn.selected = !btn.selected;
if(btn.selected == YES){
NSLog(@"左侧按钮选中状态为YES");
}else{
NSLog(@"左侧按钮选中状态为NO");
}
};
myTextView.eventblock = ^(NSAttributedString *contentStr) {
NSLog(@"点击了富文本--%@", contentStr.string);
};
[self.view addSubview:myTextView];