UITextView自带的手机、网址识别和触发方法!

转载 2015年07月10日 18:11:05
 

使用UIDataDetectorTypes自动检测电话、网址和邮箱 

分类: ios开发实用信息 81人阅读 评论(0) 收藏 举报

目录(?)[+]

支付宝发布最新版本9.0,再一次引发一场撕逼大战。微信说支付宝抄袭了它,支付宝说微信一直都在抄袭自己。在我看来,微信和支付宝都抄袭了对方。对于大佬们的抄袭,我们也是司空见惯了。

支付宝这一次更新,真是赚足了眼球,估计这也是支付宝的推广策略。就是要造势,造势有利于品牌推广。传播速度可想而知,似乎一夜之间都在谈论支付宝和微信。

至于支付宝和微信谁能打过谁,我们拭目以待。

上一篇文章UIWebView用法详解及代码分享里面提到:

webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;//自动检测网页上的电话号码,单击可以拨打

接下来我们来简单讲一下,使用UIDataDetectorTypes自动检测电话、网址和邮箱。我们先来看看UIDataDetectorTypes有哪些枚举值。

UIDataDetectorTypes的枚举值

typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) {
    UIDataDetectorTypePhoneNumber   = 1 << 0,          // Phone number detection
    UIDataDetectorTypeLink          = 1 << 1,          // URL detection    
#if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED
    UIDataDetectorTypeAddress       = 1 << 2,          // Street address detection
    UIDataDetectorTypeCalendarEvent = 1 << 3,          // Event detection
#endif    

    UIDataDetectorTypeNone          = 0,               // No detection at all
    UIDataDetectorTypeAll           = NSUIntegerMax    // All types
};

NS_OPTIONS一般用来定义位移相关操作的枚举值。UIDataDetectorTypeAddress,UIDataDetectorTypeCalendarEvent不在我们考虑的范围了。

UIWebView有dataDetectorTypes属性,UITextView也有dataDetectorTypes属性。我们来UITextView来举例。

创建UITextView

UITextView *textView = [[UITextView alloc] initWithFrame:self.view.bounds];
textView.font = [UIFont systemFontOfSize:20];
textView.editable = NO;
textView.text = @"\r\n我的手机号不是: 13888888888 \r\n\r\n"
"我的博客刚刚在线网址: www.xxxxxx.com \r\n\r\n"
"我的邮箱: worldligang@163.com \r\n\r\n";
[self.view addSubview:textView];

运行起来看一下:


可以看出来就是一个简单的文本,电话号码,网址和邮箱都没有检测出来。下面我们来看看dataDetectorTypes作用。

UIDataDetectorTypePhoneNumber检测电话

textView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;

设置textView.dataDetectorTypes的属性,即可检测文本中的电话。效果如下所示:


UIDataDetectorTypeLink检测网址和邮箱

textView.dataDetectorTypes = UIDataDetectorTypeLink;

UIDataDetectorTypeLink检测网址和邮箱的。点击网址会跳转到相应的网页,点击邮箱可以调用系统的发邮件。


UIDataDetectorTypeAll检测电话、网址和邮箱

textView.dataDetectorTypes = UIDataDetectorTypeAll;

UIDataDetectorTypeAll可以检测检测电话、网址和邮箱。效果如下:


专门写了一个iOSStrongDemo以后都在这个iOSStrongDemo里面更新内容。下载地址:iOSStrongDemo

简单定制Android控件(1) - 自识别url的TextView

自动识别url的TextView
  • mkfrank
  • mkfrank
  • 2015年11月12日 11:18
  • 2104

MTK的铃声修改与替换

MTK的资源一直深受研发人诟病,几乎成为初入手MTK人的挥之不去的痛楚,主要是因为缺乏相关的专业管理工具。虽然有一些公司自己开发一些图片了,字串,菜单了管理工具,但都由于各种各样的条件限制,没有流通开...
  • mathcompfrac
  • mathcompfrac
  • 2016年12月25日 12:22
  • 73

iOS之UILabel和UITextView富文本操作

// // ViewController.m // NSMutableAttributedString // // Created by WangLe on 16/5/23. // Copyr...
  • LOSER_LOSER1
  • LOSER_LOSER1
  • 2017年03月01日 15:24
  • 645

js对网页进行局部打印

JS代码: function preview(oper) { if (oper < 10) { bdhtml = window.document.body.innerHTML;...
  • zhifeiya
  • zhifeiya
  • 2013年11月16日 14:56
  • 990

android 网址判定正则表达式修改

1.在 alps/frameworks/base/core/java/android/util/Patterns.java 添加    public static final String TOP_...
  • sergeycao
  • sergeycao
  • 2015年02月27日 16:48
  • 1322

iOS中UITextView遇到的问题总结

前言 由于iOS中的UITextField不支持文本换行,所以在有换行需求时,我们只好用UITextView。 以下是在使用UITextView时很容易遇到的一些问题。 问题一:UI...
  • yidu_blog
  • yidu_blog
  • 2016年10月26日 13:04
  • 599

UITextView使用中的那些坑

本文主要是介绍在使用UITextView的时候遇到的问题, 这也主要是源于前几天项目需要使用UITextView进行文本展示, 遇到了关于UITextView设置内容后无法滚动到顶部的问题....
  • wlaizff
  • wlaizff
  • 2016年06月04日 21:30
  • 2674

UITextView的动态适应高度处理

本文章主要是处理自适应高度的。想到自适应高度,想必大家都知道使用boundingRectWithSize:options:attributes 来计算。嗯确实,这是个利器。其本上能正确返回字体的rec...
  • fengsh998
  • fengsh998
  • 2015年05月02日 21:58
  • 21902

UITextView 属性及使用详解

//初始化并定义大小     UITextView *textview = [[UITextView alloc] initWithFrame:CGRectMake(20, 10, 280, 3...
  • zwp438123895
  • zwp438123895
  • 2014年08月06日 09:33
  • 1186

创建带分隔线的UITextView——像笔记本一样

// //  HXLLinedTextView.m //  HXLLinedTextView // //  Created by Hao Xuliang on 6/08/13. //  Co...
  • haoxuliangdev
  • haoxuliangdev
  • 2013年08月07日 11:10
  • 2023
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITextView自带的手机、网址识别和触发方法!
举报原因:
原因补充:

(最多只允许输入30个字)