iOS中添加文本链接和图片示例代码

前言

我们在开发过程中会遇到这样的需求。用户注册,或者做些其他操作的时候我们需要在下方加上这样一段话:注册代表你遵守我们的《用户协议》,《隐私条款》这两个是链接,那么接下来我们改怎么做呢,下面来一起看看详细的介绍:

先上图再说话

实现方法

如果我们按照平常的想法在label上面显示文字,然后给label加上手势也可以实现,那么链接多的话,你就要判断点击手势的区域,感觉麻烦,那么苹果给我们提供了很好的方法富文本NSMutableAttributedString。

 UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 100, 375, 100)];
 textView.backgroundColor = [UIColor cyanColor];
 //创建初始化文本的颜色,以及字体大小
 NSDictionary *dictionary = @{NSFontAttributeName:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName:[UIColor yellowColor]};

 NSString * string = @" 跳转到百度\n\n 跳转到简书";
 //创建富文本
 NSMutableAttributedString *attributeStr = [[NSMutableAttributedString alloc] initWithString:string attributes:dictionary];
 //实现文本链接
 [attributeStr addAttribute:NSLinkAttributeName value:@"http://www.jianshu.com" range:[string rangeOfString:@"简书"]];
 [attributeStr addAttribute:NSLinkAttributeName value:@"http://www.baidu.com" range:[string rangeOfString:@"百度"]];
// textView.tintColor = [UIColor redColor];//调节文本链接字体的颜色

 textView.attributedText = attributeStr;
 textView.editable = NO;

上面的方法基本事件点击点解跳转的功能,当然你也可以遵守textview的delegate在

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange

 return YES;
}

代理方法里面做你想要的操作,可是呢,有时后文字是分条显示的 第一条,第二条,但是又不让用文字,而是用上面的小点图片显示的,这就需要插入图片了

 //文本插入图片
 NSTextAttachment *attachment = [[NSTextAttachment alloc] init];
 attachment.image = [UIImage imageNamed:@"red_2"];
 //图片大小不合适 可以调整
 attachment.bounds = CGRectMake(0, 0, 8, 8);
 NSMutableAttributedString *attachmentString = (NSMutableAttributedString *)[NSAttributedString attributedStringWithAttachment:attachment];
 //你想要插入图片的位置
 [textView.textStorage insertAttributedString:attachmentString atIndex:0];
 [textView.textStorage insertAttributedString:attachmentString atIndex:10];

富文本里面还有好多东西,有兴趣的小伙伴可以研究一下

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • iOS实现富文本编辑器的方法详解

    前言 富文本编辑器不同于文本编辑器,国内做的比较好的比如有百度的UEditor和kindEditor.但是这两个也有它的缺点:界面过于复杂.不够简洁.UI设计也比较落后.不够轻量化,这篇文章我们将给大家介绍利用iOS如何实现富文本编辑器. 实现的效果 解决思路 采用webview加载一个本地html文件,该html内部编写好js方法用于与oc相互调用 最终输出该富文本字符串传输给服务器 为什么选择这样的方式 服务端要求我最终返回的数据格式为: { @"Id":"当时新建模板这

  • iOS中添加文本链接和图片示例代码

    前言 我们在开发过程中会遇到这样的需求.用户注册,或者做些其他操作的时候我们需要在下方加上这样一段话:注册代表你遵守我们的<用户协议>,<隐私条款>这两个是链接,那么接下来我们改怎么做呢,下面来一起看看详细的介绍: 先上图再说话 实现方法 如果我们按照平常的想法在label上面显示文字,然后给label加上手势也可以实现,那么链接多的话,你就要判断点击手势的区域,感觉麻烦,那么苹果给我们提供了很好的方法富文本NSMutableAttributedString. UITextView

  • iOS中对文本的字符限制示例详解

    需求 1.对于文本框,字数限制是一种很常见的需求,判断text.length 即可,然而交互提出了对字符限制,一个英文.一个数字 对应一个字符,一个汉字 对应 两个字符,并只可以输入中英文数字.so what,要肿么办呢? 知识储备 TextField lengthOfBytesUsingEncoding 方法 characterAtIndex 首先,对于正常字数限制的一些操作此处就不讲解了. 方法如下 我们需要监听textfield [textfield addTarget:self acti

  • JQuery在页面中添加和除移DOM示例代码

    1.before():将新节点添加到前面 2.after():将节点添加到低部 3.prepend():把节点变成第一个节点 4.append():把新节点添加到末端,与appendTo()效果相同,只是语法上有差异 5.remove():除移节点 示例: 复制代码 代码如下: <ul> <li class="vacation"> <h2>Hawaiian Vac</h2> <button>Get Price</butt

  • Java 在PPT中添加文本和图片超链接的实现方法

    在文档中添加超链接,可以快速从当前文档跳转至指定的网页或打开指定的外部文件.前文中我们介绍过如何使用Java程序来为Word文档和Excel工作表添加超链接.本文将演示如何在PPT中添加文本和图片超链接. 使用工具:Free Spire.Presentation for Java(免费版)Jar文件获取及导入: 方法1:通过官网下载获取jar包.解压后将lib文件夹下的Spire.Presentation.jar文件导入Java程序.(如下图) 方法2:通过maven仓库安装导入.具体安装教程参

  • 如何在iOS中高效的加载图片详解

    目录 前言 图片的渲染流程 DataBuffer SD源码分析 ImageBuffer 占用内存大小 Xcode测试 如何减少图像占用内存 向下采样 SD源码分析解码过程 选择正确的图片渲染格式 渲染格式 如何正确的选择渲染格式 减少后备存储器的使用 减少或者不使用 draw(rect:) 方法 如何在列表中加载图片 线程爆炸 总结 前言 在iOS开发中,图片(UIImage)是我们在开发中,占用手机内存比较大的对象,如果在运行过程中,内存占用过大,对电池寿命会造成影响,如果超过了内存占用的最大

  • iOS整个APP实现灰色主题的示例代码

    灰色主题 背景 在一些哀悼日,清明节的时候app会实现一些灰色主题功能,部分app需求是tab首页实现灰色模式就可以,但一些需求是直接整个app都变为灰色模. 普通UI界面 web页面 xib界面 attributeText加载的htmlString页面 attachment挂件页面 实现方式 基本的实现方式1,普通页面用hook颜色方式2.web页面用注入灰色js实现方式 图片变灰 重新绘制图片变为灰色代码实现 //image类别 - (UIImage *)getGrayImage { con

  • iOS中UILabel text两边对齐的实现代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: -(NSAttributedString *)setTextString:(NSString *)text { NSMutableAttributedString *mAbStr = [[NSMutableAttributedString alloc] initWithString:text]; NSMutableParagraphStyle *npgStyle = [[NSMutableParagraphStyle alloc] init]

  • Java 在PDF中添加页面跳转按钮功能(代码演示)

    在PDF 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页.文档末页.跳转到上一页.下一页.或跳转到指定页面等.下面将通过java代码来演示如何添加具有以上几种功能的按钮. 使用工具: Free Spire.PDF for Java (免费版) IntelliJ IDEA Jar文件获取及导入: 方法1:通过官网下载jar文件包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序.参考如下导入效果: 方法2: 可通过maven仓库安装导入. Java 代

  • vue项目中使用bpmn-自定义platter的示例代码

    内容概述 本系列"vue项目中使用bpmn-xxxx"分为七篇,均为自己使用过程中用到的实例,手工原创,目前陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下.如果转载或通过爬虫直接爬的,格式特别丑,请来原创看:我是作者原文 前情提要 经过前四篇的学习,我们能够实现bpmn基本绘图.预览.为节点加事件加颜色等效果,这一篇我们来说,如何自定义左侧工具栏(platter),首先看一下自定义前后效果图对比: 我

  • SpringBoot中默认缓存实现方案的示例代码

    在上一节中,我带大家学习了在Spring Boot中对缓存的实现方案,尤其是结合Spring Cache的注解的实现方案,接下来在本章节中,我带大家通过代码来实现. 一. Spring Boot实现默认缓存 1. 创建web项目 我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略. 2. 添加依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artif

随机推荐