使用UITextView的dataDetectorTypes实现超链接,及uiwebview的dataDetectorTypes

来源:互联网 发布:高仿永硕e盘源码下载 编辑:程序博客网 时间:2024/05/01 19:10

现有类型是手机号码(UIDataDetectorTypePhoneNumber) 和链接 (UIDataDetectorTypesLink),要启用所有类型,可选择这里使用的所有标记(UIDataDetectorTypeAll)

用TextView 实例替代UILable实例时,一定要禁用滚动。即editable属性设为NO 。使用换行字符常量(\n)进行换行。


   UITextView *textView=[[UITextView alloc]initWithFrame:CGRectMake(40.0f, 25.0f, 236.0f, 86.0f)];
    textView.text=@"http://www.baidu.com\n\r 303-555-1212";
    textView.editable=NO;
    textView.dataDetectorTypes=UIDataDetectorTypeAll;

    [self.view addSubview:textView];


项目中需要在UITextView上识别URL,手机号码、邮箱地址等等信息。那么就用到了它的dataDetectorTypes属性。我的UITextView加在UITableViewCell上面的,当单元格多起来,重用的时候就发现文字的颜色出现了错乱问题;

解决:

UITextView设置了dataDetectorTypes,当赋值给它的text属性时会先用它的系统默认字体颜色处理普通文本和URL等信息(URL等是蓝色,其他是黑色),所以如果在给它的text赋值之前设置颜色相当于没用,因此要在设置为本之后再设置颜色,颜色重置。


在iPhone 3.0后就支持UIDataDetectorTypes来检测数字和链接。

UIDataDetectorTypePhoneNumber

UIDataDetectorTypeLink

UIDataDetectorTypeNone

UIDataDetectorTypeAll


可以用UIDataDetectorTypeNone 来禁止检测 数字链接问题

webView.dataDetectorTypes =UIDataDetectorTypeNone;




0 0