zoukankan      html  css  js  c++  java
  • UITextView 实现链接点击事件

    UILabel通过富文本可以实现图文混排,但是想要实现文字的点击效果好像不容易实现,这里有2种方法可以达到效果

    1. YYLabel -->YYText框架
      参考我之前的博客:http://www.cnblogs.com/qqcc1388/p/6709336.html

    2. UITextView 系统原生的UI框架实现文字点击效果

    #import "ViewController.h"
    
    @interface ViewController ()<UITextViewDelegate>
    
    @property (nonatomic,strong) UITextView *textView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        UITextView *textView  = [[UITextView alloc] initWithFrame:CGRectMake(20, 100, self.view.bounds.size.width - 20, 44)];
        textView.delegate = self;
        textView.editable = NO;
        textView.scrollEnabled = NO;
        self.textView = textView;
        NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"客服电话:400-775-5333 转4 (每天9:00-20:00)"];
        [attr setAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor],NSFontAttributeName:[UIFont systemFontOfSize:14]} range:NSMakeRange(0, attr.length)];
        //点击了链接拨打电话
        [attr setAttributes:@{NSForegroundColorAttributeName:[UIColor colorWithRed:0 green:147/255.0 blue:238/255.0 alpha:1],
                              NSFontAttributeName:[UIFont systemFontOfSize:14],
                              NSLinkAttributeName:@"telprompt://400-775-5333"}
         
         //如果点击了之后跳转网页可以将NSLinkAttributeName后面的修改为想要跳转的网页
                      range:NSMakeRange(5, 15)];
        textView.attributedText = attr;
        [self.view addSubview:textView];
        
    }
    
    #pragma mark - 点击了链接会走这个方法 可以在这里处理操作
    -(BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange{
        return YES;
    }
    
    
    @end
    

    方法2效果是可以达到,但是由于textView本身点击后会有UIMenuController弹出效果,比较影响体验,找了很多方法也没有找到很好的解决方案,加上实现上面偏复杂,掌握实现原理即可,推荐方法1来实现类似的效果。

  • 相关阅读:
    Java内存管理的小技巧
    Java 数组
    cmd命令大全
    wget 使用技巧
    Excellent Eclipse Plugin
    A Tutorial on Clustering Algorithms
    KMeans 算法
    Windowtester Pro Automation test environment Setup using VM Ware Client by Remote Desktop Connection
    POP3、SMTP、IMAP、Exchange
    LeetCode Validate Binary Search Tree
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/6709648.html
Copyright © 2011-2022 走看看