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

相关文章推荐

删除手机自带程序最有效最简单的方法(无须root)

在群里面有很多新手总是会问到如何删除手机自带的一些无用的程序,便于新手操作,以下很简单易操作而且不会错删系统程序的方法供一些新手参考,本人推荐使用91手机助手删除手机自带程序,至于豌豆角是否可以做到,...

windows7自带的语音识别系统(语音输入法设置方法)

WINDOWS 7自带的语音输入法,它能够将你的讲话内容变成文字,使用起来非常方便。以前我曾经使用过两种语音输入法:IBM语音输入法和OFFICE 2003(老版)中的语音输入法,使用效果不错。但与现...

Android中往手机自带的存储空间写入文件

FileOutputStream outStream = this.getContext().openFileOutput("test.txt", Context.MODE_PRIVATE);outS...

OpenSeadragon 显示多图自带放大缩小功能的JS插件(支持桌面和手机)

OpenSeadragon是一个可以显示多层图片(可放大缩小)的Web库,基于JavaScript,支持桌面和手机。 由于我项目需要,却没有找到任何中文教程,因此在官网上一边学习,一边总结于此。 ...

Android手机自带内部存储路径的获取

原文地址:http://my.oschina.net/liucundong/blog/288183我有一台中兴的Android手机,型号是 ZTE U930HD,手机没有插入外置SD卡(也就是Micr...

解决用手机自带GPS获取经纬度location为空的问题

获取经纬度这个功能在现在看来很常见!但是真正获取出来是不容易的! 我这两天有个功能需要用到经纬度,当时一开始想用手机自带的GPS定位获取经纬度, 但是遇到了问题:location为空!在网上各种查...

用NDK调用Android手机自带的openssl库函数

目标: 目前很多Android手机已经自带了openssl库, 即libssl.so, libcrypto.so, 以下示例实现了APK通过NDK调用openssl库函数PKCS5_PBKDF2_HM...

一个简单易用的低功耗蓝牙框架。兼容性好、适配到 6.0、适配小米三星手机、操作简单、支持连发无需延时、自带队列管理、支持多通知

一个简单易用的低功耗蓝牙框架。兼容性好、适配到 6.0、适配小米三星手机、操作简单、支持连发无需延时、自带队列管理、支持多通知

仿系统闹钟,实现更新安装之后还可以响铃,开机启动功能需要手机自带开机自启动

忽然飞来一个新的需求,APP的日程安排需要添加一个闹钟提醒,我的天,这是要逆天啊,刚开始做的时候,没想那么多,因为了解的少吗,再加上不知道QQ和微信等已经被厂商加入了白名单,本来想也就是几天的工作量,...

Android手机如何删除自带软件

大家一般都会删除自己安装的程序了,最简单的办法就是,设置——应用程序——管理应用程序,找到并卸载。 这种办法的话,系统自带的程序是删除不掉的。可是很多人可能有整洁癖,看着自己手机里有自己用不上的程序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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