当我们有一段文字,而一些特定的文字需要执行一些功能,比如打电话,复制内容或者跳转网页等等功能,就需要给属性文字加入定义好的链接,在uitextview的代理方法中拿到这些链接,以实现功能。
以上面的图片为例,需求是点击练习客服和关注微信后实现一些功能
- 第一步定义好链接的url
比如联系客服和打电话可以自定义url的 scheme
在项目中定义scheme.如果是mvp模式可以是路由的url链接地址
NSString *const KEFU_SCEME = @"makeFPoneCall";
NSString *const GUANZHU_SCEME = @"followWeChat";
根据scheme拼接的完整的url就是makeFPoneCall://xxxx
- 第二部自定义UITextView
代码如下
-(instancetype)initWithFrame:(CGRect)frame{
if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor clearColor];
self.editable = NO;
self.textAlignment = NSTextAlignmentLeft;
self.dataDetectorTypes = UIDataDetectorTypeAll;
//设置超链接富文本
NSString